Loading...

[swexpert] 1959. 두 개의 숫자열 (python)

짧은 쪽, 긴쪽 배열을 구분한 후 긴 배열에서 인덱스를 0부터 (긴배열길이-짧은 배열-1) 만큼 이동하면서 짧은 배열의 길이만큼 더해준다 합이 마이너스가 나올 수가 있어서 결과 초기값을 어떻게 줄까 고민하다가 배열에 결과 합을 다 넣고 최대값을 리턴해주는 방식으로 구현했습니다. t=int(input()) for i in range(1,t+1): print(f'#{i}',end=' ') n,m=map(int,input().split()) a=list(map(int,input().split())) b=list(map(int,input().split())) sum = [] if n>m: for j in range(0,n-m+1): temp = 0 for k in range(m): temp+=b[k]*a[j+k..

[swexpert] 1970. 쉬운 거스름돈 (python, java)

그리디 대표 알고리즘입니다 가장 큰 금액부터 나누면 잔돈 개수는 가장 적게 나옵니다 >

[React] hooks 만든 동기, 사용하는 이유 요약

이 글은 React 공식 홈페이지 ko.reactjs.org/docs/hooks-intro.html#ts-hard-to-reuse-stateful-logic-between-components Hook의 개요 – React A JavaScript library for building user interfaces ko.reactjs.org 을 읽고 요약하며 생각한 사담을 넣은 글입니다. 동기 기존 리액트는 컴포넌트 사이에서 상태와 관련된 로직을 재사용하기 어렵다 React는 컴포넌트 재사용 가능한 행동을 붙이는 별다른 방법을 제공하지 않는다. 따라서 render Props나 고차 컴포넌트 같은 패턴이 재사용성을 위해서 사용되어 왔다. 하지만 이런 패턴은 컴포넌트를 재구성해야하고 (render props의 경..

[swexpert] 1966. 숫자를 정렬하자 (python, java)

1. 파이썬 풀이 배열을 입력받고 정렬한 배열의 값을 *로 가져와 출력한다 t=int(input()) for i in range(1,t+1): n=int(input()) arr=list(map(int,input().split())) print(f'#{i}',end=' ') print(*sorted(arr)) 2. 자바 import java.util.Arrays; import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int t=sc.nextInt(); for (int tc = 1; tc

[swexpert] 1961. 숫자 배열 회전 (python)

zip은 배열의 가로 세로 배열을 바꿔주고 *은 리스트 내부 값을 가져온다 *[(1,2,3)] => (1,2,3) 이렇게 된다 t=int(input()) for i in range(1,t+1): n=int(input()) matrix=[input().strip().split() for _ in range(n)] # 배열의 값 입력 받음 result=[[] for _ in range(3)] # 결과(리턴 값) for idx in range(3): new_arr=[] # 뒤집을 배열 for z in zip(*matrix): #배열의 행열 뒤집기 new_arr.append(list(reversed(z))) #뒤집은 행을 넣어준다 result[idx].append(''.join(list(reversed(z)))..

[swexpert] 1948. 날짜 계산기 (python)

뒤에 나오는 날짜의 총합은 이전 월까지의 일수의 합 + 현재 달의 일수 이전 날짜의 총합도 마찬가지로 그렇게 구해준다 현재 날짜는 1부터 시작한다 날짜의 총합을 빼주면 날의 차이가 나타난다 t=int(input()) date=[31,28,31,30,31,30,31,31,30,31,30,31] for i in range(1,t+1): print(f'#{i}',end=' ') m,d1,n,d2=map(int,input().split()) sum=1 for x in range(n-1): sum+=date[x] sum+=d2 sum-=d1 for x in range(m-1): sum-=date[x] print(sum)

[swexpert] 1986. 지그재그 숫자 (python, java)

1. 파이썬 n이 최대 10이여서 미리 더한 값을 구해놓고 입력받은 n에 해당하는 숫자를 출력해줬다 t=int(input()) dp=[0]*11 for i in range(1,11): if i%2: dp[i]=dp[i-1]+i else: dp[i]=dp[i-1]-i for i in range(1,t+1): n=int(input()) print(f'#{i} {dp[n]}') 2. 자바 풀이 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int t=sc.nextInt(); sc.nextLine(); for (int tc = 1; tc

[swexpert] 1983. 조교의 성적 매기기 (python, java, D2)

10명이면 각 등급을 한 명당(10/10) 다르게 받게 된다 현재의 위치 (0부터 시작)을 n/10을 나눈 것이 각 등급의 인덱스를 가르킨다 내가 한 방법은 전체 점수(내림차순 기준)과 학생 번호를 같이 저장해서 번호를 찾아 해당 인덱스를 반환하는 식으로 풀었다 *추가 번호가 k인 학생이랑 같은 총점인 다른 학생이 없으므로 학생 번호를 저장할 필요없이 total 점수만 기억해놓고 점수가 같은지 비교하는 방법으로 구현하는 것이 더 좋을 듯하다 1. 파이썬 풀이 t=int(input()) rank=['A+','A0','A-','B+','B0','B-','C+','C0','C-','D0'] for i in range(1,t+1): n,k=map(int,input().split()) arr=[] for num ..

[swexpert] 1984. 중간 평균값 구하기 (python, java)

round로 반올림할 시 실수값으로 표현되길래 다시 int를 써서 정수로 변환해주었다 1. 파이썬 풀이 t=int(input()) for i in range(1,t+1): a=list(map(int,input().split())) a.sort() print(f'#{i} {int(round(sum(a[1:-1])/(len(a)-2)))}') 2. 자바 풀이 sum을 double로 해서 실수값으로 만들어주는 것이 포인트 package com.ssafy.edu; import java.util.Arrays; import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(S..

[swexpert] 1989. 초심자의 회문 검사 (python, java)

문자열 끝에 엔터도 입력되므로 제거해준 후 뒤집어서 같은지 비교해진다 1. 파이썬 t=int(input()) for i in range(1,t+1): s=input().strip() if s==s[::-1]: print(f'#{i} 1') else: print(f'#{i} 0') 2. 자바 new StringBuffer로 뒤집을 수 있는데 다시 toString()으로 해줘야 같은지 아닌지 비교가 되는 문자열로 변환된다. import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int t=sc.nextInt(); sc.nextLine(); ..