이렇게 보면, 호수 YYXX 중 뒷부분 XX는 N을 H로 나눈 몫과 같다. (나누어떨어질 때만 빼고) 앞부분 YY는 N을 H로 나눈 나머지와 같다. (나누어떨어질 때만 빼고) 나누어떨어질 때를 예외로 두고 YY와 XX를 구하면 된다. import sys T = int(sys.stdin.readline()) H, W, N = 0, 0, 0 for i in range(T): H, W, N = map(int, sys.stdin.readline().split()) # N이 H로 나누어떨어지지 않을 때 if N % H != 0: X = N//H + 1 if len(str(X)) == 1: # X가 한 자리수일때 앞에 0을 더해줌 X = '0' + str(X) Y = N % H # N이 H로 나누어떨어질 때 els..
차근차근 풀었는데 시간 초과가 떴다. 약수를 하나하나 넣고 배수를 하나하나 넣어서 해서 시간이 너무 오래걸린듯 import sys x, y = sys.stdin.readline().split() x = int(x) y = int(y) factor_x = [x] for i in range(1, x//2 + 1): if x % i == 0: factor_x.append(i) factor_y = [y] for i in range(1, y//2 + 1): if y % i == 0: factor_y.append(i) common_f = [] for i in factor_y: if i in factor_x : common_f.append(i) mul = [] for i in range(max(x, y), x * y..
처음에는 단순한 문제일 줄 알고 그냥 하나씩 받아서 프린트하는 구조로 코드를 짰었다. import sys N = int(sys.stdin.readline()) X = [] for i in range(N): X.append(int(sys.stdin.readline())) X.sort() for i in range(N): print(X[i]) 메모리 초과 ㅠㅠ 문제에서 수들이 10000보다 작거나 같은 자연수라고 했으니 10000개의 0을 담는 리스트를 만들고 인풋에 들어온 수 번째의 0을 +1씩 해준다 (이렇게 해야 여러 개 들어왔을 때 여러 개를 프린트할 수 있다) 그러고는 0이 아닌 애들만 프린트 해준다 import sys N = int(sys.stdin.readline()) check = [0] * ..
import sys import collections N = int(sys.stdin.readline()) deq = collections.deque() for i in range(N): X = list(sys.stdin.readline().split()) if X[0] == 'push': deq.append(X[1]) elif X[0] == 'pop' : if len(deq) > 0: print(deq.popleft()) else: print(-1) elif X[0] == 'size': print(len(deq)) elif X[0] == 'empty': if len(deq) == 0: print(1) else : print(0) elif X[0] == 'front': if len(deq) == 0: p..
최빈값이 제일 어려웠다 Counter와 most_common()을 쓰니 금방 해결! import sys N = int(sys.stdin.readline()) X = [] for i in range(N): X.append(int(sys.stdin.readline())) X.sort() # 1. 산술평균 print(round(sum(X) / N)) # 2. 중앙값 print(X[(N-1)//2]) # 3. 최빈값 from collections import Counter M = Counter(X).most_common(2) if len(M) > 1: if M[0][1] == M[1][1] : print(M[1][0]) else: print(M[0][0]) else: print(X[0]) # 4. 범위 prin..
시간초과 났다가 고친 문제,, 첫 리스트를 set으로 바꿔주면 된다. (어차피 중복도 없으니까) import sys N = int(sys.stdin.readline()) A = set(map(int, sys.stdin.readline().split())) # list로 하면 시간초과 남 M = int(sys.stdin.readline()) B = list(map(int, sys.stdin.readline().split())) for i in B: if i in A: print(1) else: print(0)