목록Python (215)
가오리의 코딩일기

import sys N = int(sys.stdin.readline()) # N = int(input()) stack = [] for _ in range(N): # word = input().split() word = sys.stdin.readline().split() order = word[0] if order == "push": value = word[1] stack.append(value) elif order == "pop": if len(stack) == 0: print(-1) else: print(stack.pop()) elif order == "size": print(len(stack)) elif order == "empty": if len(stack) == 0: print(1) else: p..

n, k = map(int, input().split()) data = list(map(int, input().split())) data.sort() print(data[k-1])

n = int(input()) dic ={} for case in range(n): card = int(input()) if card in dic: dic[card] += 1 else: dic[card] = 1 dic = sorted(dic.items(), key = lambda x: (-x[1], x[0])) print(dic[0][0])

메모리 초과 오류 import sys n = int(sys.stdin.readline()) data = [] for _ in range(n): data.append(int(sys.stdin.readline().split())) sorted_data = sorted(data) for i in sorted_data: print(i) import sys n = int(sys.stdin.readline()) data = [0] * 10001 for _ in range(n): data[int(sys.stdin.readline())] +=1 for i in range(10001): if data[i] != 0: for j in range(data[i]): print(i)
POINT - 1부터 차례대로 만들수 있는지 확인 n = int(input()) numbers = list(map(int, input().split())) numbers.sort() coin = 1 for i in numbers: if coin < i: break coin += i print(coin)
POINT - 0과 1로 이루어진 문자열 s - 0의 수와 1의 수를 비교해서 적음 → 실제로 뒤집에서 계산하는게 아님 - 전부 0이나 1로 바꾸는 경우를 찾고 더 작은 횟수를 가지는 것 찾기 s = input() zero = 0 one = 0 if s[0] == '0': zero += 1 else: one += 1 for i in range(len(s)-1): if s[i] != s[i+1]: if s[i+1] == '0': zero += 1 else: one += 1 print(min(zero, one)) - 0번지 값과 1번지 값 비교를 위해 0번지 값은 따로 확인한다 - range(len(s)-1) : range()_0번지부터 시작 - s[i]와 s[i+1]이 같으면 변화가 없으니 생략, 다르면 ..
POINT - 각 자리의 숫자 0~9로 이루어진 s, s 사이에 '+' 혹은 '*' - 가장 큰 수 만들기 - 연산 순위가 없음 왼쪽→ 오른쪽 순 ex) 02984 : ((((0+2)*9*8*4) =576 567 = (5*6)*7 - s[n]
POINT - 원소(X)의 값은 공포도의 값이자 모험가 1명임을 의미한다 - 내림차순이 아닌 오름차순을 사용한다 - 2 3 1 2 2 → 1 2 2 2 3 → 1 / 2 2 / 2 3 : 여기서 2 3은 불가능 → 3이 있기 때문에 3이하인 숫자가 하나 더 필요 n = int(input()) x = list(map(int, input().split())) x.sort() # 오름차순 정리, 내림차순 불가능 group = 0 # 나눌 그룹의 수 member = 0 # 각 그룹의 사람 수 for i in x: member += 1 # 현재 그룹에 사람 추가 if member >= i: # 현재 그룹에 포함된 모험가 수가 현재 공포도보다 크거나 같으면 group += 1 # 그룹 생성 member = 0 # ..

n = int(input()) data = [0] + list(map(int, input().split())) dp = [0 for _ in range(n+1)] for i in range(1, n+1): for j in range(1, i+1): dp[i] = max(dp[i], dp[i-j]+data[j]) print(dp[i])

import sys n = sys.stdin.readline data = list(str(sys.stdin.readline().strip())) dp = [0 for _ in range(len(data)+1)] dp[0] = 1 dp[1] = 1 if data[0] == '0': print(0) else: for i in range(2, len(data)+1): if int(data[i-1]) > 0: dp[i] += dp[i-1] to_int = int(data[i-2]+data[i-1]) if 10