목록분류 전체보기 (310)
가오리의 코딩일기
POINT - 각 자리의 숫자 0~9로 이루어진 s, s 사이에 '+' 혹은 '*' - 가장 큰 수 만들기 - 연산 순위가 없음 왼쪽→ 오른쪽 순 ex) 02984 : ((((0+2)*9*8*4) =576 567 = (5*6)*7 - s[n]
LEVEL1 #pond{ display: flex; justify-content: flex-end; } LEVEL2 #pond{ display: flex; justify-content : center; } LEVEL3 #pond{ display : flex; justify-content : space-around; } LEVEL4 #pond{ display : flex; justify-content : space-between; } LEVEL5 #pond{ display :flex; align-items: flex-end; } LEVEL6 #pond{ display : flex; justify-content : center; align-items: center; } LEVEL7 #pond{ display..
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
import sys def input(): return sys.stdin.readline().strip() n, k = map(int, input().split()) dp = [[0] * 201 for i in range(201)] for i in range(201): dp[1][i] = 1 dp[2][i] = i+1 for i in range(2, 201): dp[i][1] = i for j in range(2, 201): dp[i][j] = (dp[i][j-1]+dp[i-1][j]) % 1000000000 print(dp[k][n])
T = int(input()) data = [1, 1, 1, 2, 2] for i in range(5, 100): data.append(data[i-1]+data[i-5]) for _ in range(T): n = int(input()) print(data[n-1])
import sys n = int(input()) dp = [0 for i in range(31)] dp[2] = 3 for i in range(4, 31, 2): dp[i] = dp[2] * dp[i-2] for j in range(4, i, 2): dp[i] += 2 * dp[i-j] dp[i] += 2 print(dp[n])
POINT - n을 k로 나누어지지 않으면 1을 뺀다 n, k = map(int, input().split()) count = 0 while n >= k: if n % k == 0: n = n/k count += 1 else: n -= 1 count += 1 print(count) n, k = map(int, input().split()) result = 0 while n >= k: while n % k == 0: n -= 1 result += 1 n //= k result += 1 while n > 1: n -= 1 result += 1 print(result) n, k = map(int, input().split()) result = 0 while True: target = (n//k) * k res..
POINT - 각 줄에서 가장 작은 수를 뽑아서 뽑은 작은 수 중 가장 큰 수를 뽑는다 n, m = map(int, input().split()) result = 0 for i in range(n): nlist = list(map(int, input().split())) num_m = min(nlist) result = max(result, num_m) print(result) n, m = map(int, input().split()) result = 0 for i in range(n): data = list(map(int, input().split())) min_value = 10001 for a in data: min_value = min(min_value, a) result = max(result,..