벌집처럼 육각형으로 이루어져 있는 칸에 적힌 수까지 가려면 몇 개의 방을 지나야 하는지 출력하는 문제 지나가야 하는 방의 개수 2개 : 2, 3, 4, 5, 6, 7 - 6개 지.방.개. 3개: 8, 9, 10, 11, ... 19 - 12개 지.방.개. 4개: 20 ~ 37 - 18개 6씩 늘어난다 X = int(input()) a = 1 six = 6 cnt = 1 while X > a : cnt += 1 a = a + six six += 6 print(cnt) X는 주어진 수 a는 지.방.개.가 cnt개일 때 할당되는 수 중 가장 큰 수 (예를 들어, cnt = 2이고 a = 7일 때 2~7까지는 지.방.개.가 2개(=cnt)이다.) six는 늘어나는 수의 개수.. 즉 6, 12, 18 이렇게 늘어..
처음에는 단순한 문제일 줄 알고 그냥 하나씩 받아서 프린트하는 구조로 코드를 짰었다. 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..