bong-u/til

๐Ÿ  home ๐Ÿˆ repository
new ๋ฐฑ์ค€ - 12852 : 1๋กœ ๋งŒ๋“ค๊ธฐ 2 (S1)
๐Ÿง  Algorithm
1N = int(input()) 2 3dp = [0, 0] + [10**6]*(N-1) 4bt = [0]*(N+1) 5 6for i in range(2, N+1): 7 dp[i] = min(dp[i-1]+1, dp[i]) 8 bt[i] = i-1 9 10 if i%3 == 0: 11 if dp[i//3]+1 < dp[i]: 12 dp[i] = dp[i//3]+1 13 bt[i] = i//3 14 if i%2 == 0: 15 if dp[i//2]+1 < dp[i]: 16 dp[i] = dp[i//2]+1 17 bt[i] = i//2 18 dp[i] = min(dp[i], dp[i//2]+1) 19 20print(dp[N]๋‹ค 21i = N 22while i !
new ๋ฐฑ์ค€ - 17070 : ํŒŒ์ดํ”„ ์˜ฎ๊ธฐ๊ธฐ 1 (G5)
๐Ÿง  Algorithm
1N = int(input()) 2 3L = [list(map(int, input().split())) for _ in range(N)] 4result = 0 5 6def dfs(x, y, direc): 7 global result 8 if x == N-1 and y == N-1: 9 result += 1 10 return 11 12 if x+1 < N and y+1 < N and L[y+1][x] == 0 and L[y][x+1] == 0 and L[y+1][x+1] == 0: 13 dfs(x+1, y+1, 2) 14 15 if (direc == 0 or direc == 2) and x+1 < N and L[y][x+1] == 0: 16 dfs(x+1, y, 0) 17 18 if (direc == 1 or direc == 2) and y+1 < N and L[y+1][x] == 0: 19 dfs(x, y+1, 1) 20 21dfs(1, 0, 0) 22print(result) ๋ณ„๊ฑฐ ์•„๋‹Œ๊ฒŒ.
new ๋ฐฑ์ค€ - 1965 : ์ƒ์ž๋„ฃ๊ธฐ (S2)
๐Ÿง  Algorithm
1N = int(input()) 2L = list(map(int, input().split())) 3dp = [0]*N 4 5for i in range(1, N): 6 for j in range(i): 7 if L[j]<L[i] and dp[i]<dp[j]+1: 8 dp[i] = dp[j]+1 9print(max(dp)+1) LIS๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค
new ๋ฐฑ์ค€ - 16194 : ์นด๋“œ ๊ตฌ๋งคํ•˜๊ธฐ 2 (S1)
๐Ÿง  Algorithm
1N = int(input()) 2P = list(map(int, input().split())) 3dp = [10000000]*(N) 4 5for i in range(N): 6 for j in range(i): 7 dp[i] = min(dp[i], dp[j]+P[i-j-1]) 8 dp[i] = min(dp[i], P[i]) 9 10print (dp[N-1])
new ๋ฐฑ์ค€ - 1495 : ๊ธฐํƒ€๋ฆฌ์ŠคํŠธ (S1)
๐Ÿง  Algorithm
1N, S, M = map(int, input().split()) 2P = list(map(int, input().split())) 3dp = [[False]*(M+1) for _ in range(N+1)] 4 5dp[0][S] = True 6 7for i in range(1, N+1): 8 for j in range(M+1): 9 if dp[i-1][j]: 10 if 0 <= j-P[i-1] <= M: 11 dp[i][j-P[i-1]] = True 12 if 0 <= j+P[i-1] <= M: 13 dp[i][j+P[i-1]] = True 14result = -1 15for i in range(M+1): 16 if dp[N][i]: 17 result = i 18print (result) ์ธํ„ฐ๋„ท์—์„œ ์ ‘๊ทผ์„ ์ฐธ๊ณ ํ–ˆ๋‹ค
new ๋ฐฑ์ค€ - 2011 : ์•”ํ˜ธ์ฝ”๋“œ (G5)
๐Ÿง  Algorithm
1L = list(input()) 2N = len(L) 3MOD = 10**6 4 5def solution(): 6 if L[0] == '0': 7 return 0 8 9 dp = [1, 1]+[0]*(N-1) 10 11 for i in range(2, N+1): 12 if L[i-1] != '0': 13 dp[i] = (dp[i]+dp[i-1]) % MOD 14 if 10 <= int(L[i-2]+L[i-1]) <= 26: 15 dp[i] = (dp[i]+dp[i-2]) % MOD 16 17 return dp[N] 18 19 20print (solution()) ์ธํ„ฐ๋„ท์„ ์ฐธ๊ณ ํ•˜์—ฌ ํ’€์—ˆ๋‹ค
new ๋ฐฑ์ค€ - 10164 : ๊ฒฉ์ž์ƒ์˜ ๊ฒฝ๋กœ (S1)
๐Ÿง  Algorithm
1N, M, K = map(int, input().split()) 2K -= 1 3ox = K % M 4oy = K // M 5def solve(sx, sy, ex, ey): 6 dp = [[0]*M for _ in range(N)] 7 dp[sy][sx] = 1 8 for i in range(sy, ey+1): 9 for j in range(sx, ex+1): 10 if i-1 >= 0: 11 dp[i][j] += dp[i-1][j] 12 if j-1 >= 0: 13 dp[i][j] += dp[i][j-1] 14 return dp[ey][ex] 15 16if K !
new ๋ฐฑ์ค€ - 5557 : 1ํ•™๋…„ (G5)
๐Ÿง  Algorithm
1N = int(input()) 2L = list(map(int, input().split())) 3dp = [[0]*21 for _ in range(N-1)] 4 5dp[0][L[0]] = 1 6 7for i in range(0, N-2): 8 for j in range(21): 9 if dp[i][j] != 0: 10 k = L[i+1] 11 if k != 0: 12 if 0 <= j+k <= 20: 13 dp[i+1][j+k] += dp[i][j] 14 if 0 <= j-k <= 20: 15 dp[i+1][j-k] += dp[i][j] 16 else: 17 dp[i+1][j] = dp[i][j]*2 18print (dp[N-2][L[-1]]) ํ˜ผ์ž ํž˜์œผ๋กœ ํ’€์—ˆ๋‹ค!
new ๋ฐฑ์ค€ - 5582 : ๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด (G5)
๐Ÿง  Algorithm
1S1 = list(input()) 2S2 = list(input()) 3L1 = len(S1)+1 4L2 = len(S2)+1 5 6dp = [[0]*L1 for _ in range(L2)] 7result = 0 8 9for i in range(1, L2): 10 for j in range(1, L1): 11 if S1[j-1] == S2[i-1]: 12 dp[i][j] = dp[i-1][j-1]+1 13 result = max(result, dp[i][j]) 14 15print (result) ํ˜ผ์ž ํž˜์œผ๋กœ ํ•ด๊ฒฐ! ๊น”๋”ํ•œ ํ’€์ด๊ฐ€ ๋‚˜์™€ ๊ธฐ๋ถ„์ด ์ข‹๋‹ค
new ๋ฐฑ์ค€ - 10942 : ํŒฐ๋ฆฐ๋“œ๋กฌ? (G4)
๐Ÿง  Algorithm
1import sys 2input = sys.stdin.readline 3 4N = int(input()) 5L = list(map(int, input().split())) 6 7dp = [[0]*N for _ in range(N)] 8 9for i in range(N): 10 dp[i][i] = 1 11 if i < N-1 and L[i] == L[i+1]: 12 dp[i][i+1] = 1 13 14for i in range(N, -1, -1): 15 for j in range(i+1, N): 16 if dp[i+1][j-1] and L[i] == L[j]: 17 dp[i][j] = 1 18 19for i in range(int(input())): 20 S, E = map(int, input().
new ๋ฐฑ์ค€ - 9252 : LCS 2 (G4)
๐Ÿง  Algorithm
1S1 = list(input()) 2S2 = list(input()) 3 4N1 = len(S1)+1 5N2 = len(S2)+1 6 7dp = [[0]*(N1) for _ in range(N2)] 8 9for i in range(1, N2): 10 for j in range(1, N1): 11 if S2[i-1] == S1[j-1]: 12 dp[i][j] = dp[i-1][j-1] + 1 13 else: 14 dp[i][j] = max(dp[i-1][j], dp[i][j-1]) 15i = N2-1 16j = N1-1 17print (dp[i][j]) 18if dp[i][j] == 0: 19 exit() 20 21result = '' 22while True: 23 if i==0 or j==0: 24 break 25 26 if dp[i][j] == dp[i-1][j]: 27 i -= 1 28 elif dp[i][j] == dp[i][j-1]: 29 j -= 1 30 else: 31 result = S1[j-1] + result 32 i -= 1 33 j -= 1 34 35print (result) ์ ํ™”์‹์„ ์ž˜๋ชป ์„ธ์› ์—ˆ๋‹ค ๋ฌธ์ž๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ์— max(dp[i-1][j], dp[i][j-1])+1์ด ์•„๋‹Œ dp[i-1][j-1]+1์ด๋‹ค.
new ๋ฐฑ์ค€ - 1918 : ํ›„์œ„ ํ‘œ๊ธฐ์‹ (G2)
๐Ÿง  Algorithm
1string = list(input()) 2 3priority = {'(':0, ')':0, '+':1, '-':1, '*':2, '/':2} 4operator = [] 5result = '' 6 7for c in string: 8 if c.isalpha(): 9 result += c 10 elif c == '(': 11 operator.append(c) 12 elif c == ')': 13 while operator: 14 op = operator.pop() 15 if op == '(': 16 break 17 result += op 18 else: 19 if operator: 20 if priority[operator[-1]] < priority[c]: 21 operator.
new ๋ฐฑ์ค€ - 1915 : ๊ฐ€์žฅ ํฐ ์ •์‚ฌ๊ฐํ˜• (G4)
๐Ÿง  Algorithm
1N, M = map(int, input().split()) 2 3L = [list(map(int, input())) for _ in range(N)] 4 5dp = [[0]*(M+1) for _ in range(N+1)] 6 7result = 0 8 9for i in range(1, N+1): 10 for j in range(1, M+1): 11 dp[i][j] = L[i-1][j-1] 12 13 if L[i-1][j-1]: 14 dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1])+1 15 result = max(result, dp[i][j]) 16 17for i in dp: 18 print (i) 19print (result**2) ์กฐ๊ธˆ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์ง€๋งŒ ํ˜ผ์ž ํž˜์œผ๋กœ ํ’€์—ˆ๋‹ค ์ ํ™”์‹์€ dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1])+1์ด๋‹ค.
new ๋ฐฑ์ค€ - 2631 : ์ค„์„ธ์šฐ๊ธฐ (G4)
๐Ÿง  Algorithm
1N = int(input()) 2L = [] 3for i in range(N): 4 L.append(int(input())) 5 6dp = [1]*N 7 8for i in range(N): 9 for j in range(i): 10 if L[j] < L[i]: 11 dp[i] = max(dp[i], dp[j]+1) 12 13print (N-max(dp)) LIS๋ฅผ ํ™œ์šฉํ•œ ๋ฌธ์ œ์ด๋‹ค ํ’€์ด ์œ ๋„๋Š” ์ž˜ํ–ˆ์œผ๋‚˜ LIS๊ฐ€ ํ—ท๊ฐˆ๋ ค์„œ ์ „์— ํ’€์—ˆ๋˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์˜€๋‹ค
new ๋ฐฑ์ค€ - 15486 : ํ‡ด์‚ฌ 2 (G5)
๐Ÿง  Algorithm
1import sys 2input = sys.stdin.readline 3N = int(input()) 4T = [] 5P = [] 6dp = [0]*(N+1) 7 8for _ in range(N): 9 a, b = map(int, input().split()) 10 T.append(a) 11 P.append(b) 12 13for i in range(N-1, -1, -1): 14 if i+T[i] > N: 15 dp[i] = dp[i+1] 16 else: 17 dp[i] = max(P[i]+dp[i+T[i]], dp[i+1]) 18 19print (dp[0]) dp๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•˜๋Š”๋ฐ ์•ˆ ๋งŒ๋“ค๊ณ  ๋ฆฌ์ŠคํŠธ P๋งŒ ๊ฐ€์ง€๊ณ  memoization ํ•˜๋ ค๋‹ค ์‹คํŒจํ–ˆ๋‹ค ์ ํ™”์‹์€ ์ž˜ ์ ์—ˆ์œผ๋‚˜ ์กฐ๊ฑด๋ฌธ์ด ์ž˜ ๋ชป๋˜์–ด์„œ ๋‹ค๋ฅธ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ–ˆ๋‹ค
new ๋ฐฑ์ค€ - 13398 : ์—ฐ์†ํ•ฉ 2 (G5)
๐Ÿง  Algorithm
1N = int(input()) 2L = list(map(int, input().split())) 3res = 0 4dp = [[-1000]*N for _ in range(2)] 5dp[0][0] = L[0] 6for i in range(1, N): 7 dp[0][i] = max(dp[0][i-1]+L[i], L[i]) 8 dp[1][i] = max(dp[1][i-1]+L[i], dp[0][i-1]) 9 10print (max(max(dp[0]), max(dp[1]))) ์ด๋ฒˆ ๋ฌธ์ œ์—์„œ ์‚ฌ์šฉํ•  dp ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” N X 2 ์ด๋‹ค. ๋ฐฐ์—ด์€ ์ตœ์†Ÿ๊ฐ’์ธ -1000์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜์—ฌ์•ผ ํ•œ๋‹ค
new ๋ฐฑ์ค€ - 2502 : ๋–ก ๋จน๋Š” ํ˜ธ๋ž‘์ด (S1)
๐Ÿง  Algorithm
1D, K = map(int, input().split()) 2L = [(1, 0), (0, 1)] 3 4for i in range(2, D): 5 L.append((L[i-2][0]+L[i-1][0], L[i-2][1]+L[i-1][1])) 6 7A = 1 8B = 2 9 10while True: 11 if A*L[D-1][0] + B*L[D-1][1] == K: 12 break 13 14 if A+1 == B: 15 B += 1 16 A = 1 17 else: 18 A += 1 19 20print (A,'\n',B, sep='') ํ•ด๊ฒฐ๋ฐฉ๋ฒ• N๋ฒˆ์งธ๋‚  ๋–ก ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์ฒซ์งธ๋‚  ๋–ก, ๋‘˜์งธ๋‚  ๋–ก์„ ๊ฐ๊ฐ ๋ช‡๋ฒˆ ๋”ํ•ด์•ผํ•˜๋Š”์ง€ ๋ฆฌ์ŠคํŠธ์— ๊ตฌํ•œ๋‹ค ์ฒซ์งธ, ๋‘˜์งธ ๋‚  ๋–ก์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋„ฃ์–ด๋ณด๋ฉด์„œ ๋ธŒ๋ฃจํŠธ ํฌ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค
new ๋ฐฑ์ค€ - 15681 : ํŠธ๋ฆฌ์™€ ์ฟผ๋ฆฌ (G5)
๐Ÿง  Algorithm
1import sys 2sys.setrecursionlimit(10**6) 3input = sys.stdin.readline 4N, R, Q = map(int, input().split()) 5G = [[] for _ in range(N)] 6cnt = [1]*N 7visited = [False]*N 8 9for _ in range(N-1): 10 a, b = map(int, input().split()) 11 G[a-1].append(b-1) 12 G[b-1].append(a-1) 13 14def dfs(node): 15 visited[node] = True 16 17 for i in G[node]: 18 if not visited[i]: 19 cnt[node] += dfs(i) 20 return cnt[node] 21 22dfs(R-1) 23 24for _ in range(Q): 25 print (cnt[int(input())-1]) ํ˜ผ์ž ํ’€์—ˆ๋‹ค!
new ๋ฐฑ์ค€ - 1967 : ํŠธ๋ฆฌ์˜ ์ง€๋ฆ„(G4)
๐Ÿง  Algorithm
1import sys 2sys.setrecursionlimit(10**6) 3M = int(input()) 4G = [[] for _ in range(M)] 5 6for _ in range(M-1): 7 a, b, c = map(int, input().split()) 8 G[a-1].append((b-1, c)) 9 G[b-1].append((a-1, c)) 10 11n1 = 0 12tmp = 0 13 14def dfs(node, length): 15 global n1, tmp 16 visit[node] = True 17 if length > tmp: 18 tmp = length 19 n1 = node 20 for child, v in G[node]: 21 if not visit[child]: 22 dfs(child, length+v) 23 24visit = [False]*M 25dfs(0, 0) 26tmp = 0 27visit = [False]*M 28dfs(n1, 0) 29print (tmp) ์ธํ„ฐ๋„ท์—์„œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์ฐธ๊ณ ํ–ˆ๋‹ค ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์•„๋ฌด ์ •์ ์—์„œ ๊ฐ€์žฅ ๋จผ ์–ด๋–ค ์ •์ ์„ N์ด๋ผ๊ณ  ํ•˜์ž ์ •์  N์—์„œ ๊ฐ€์žฅ ๋จผ ์ •์  ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ํŠธ๋ฆฌ์˜ ์ง€๋ฆ„๊ณผ ๊ฐ™๋‹ค ๋А๋‚€ ์  ๋ฃจํŠธ๋ฅผ ๊ตฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋‹ค
new ๋ฐฑ์ค€ - 1167 : ํŠธ๋ฆฌ์˜ ์ง€๋ฆ„ (G2)
๐Ÿง  Algorithm
1import sys 2sys.setrecursionlimit(10**6) 3input = sys.stdin.readline 4 5V = int(input()) 6G = [[] for _ in range(V)] 7for _ in range(V): 8 token = list(map(int, input().split()))[:-1] 9 for i in range(1, len(token), 2): 10 G[token[0]-1].append((token[i]-1, token[i+1])) 11 12def dfs(node, dist): 13 global max_node, max_dist 14 visited[node] = True 15 if dist > max_dist: 16 max_node = node 17 max_dist = dist 18 for n_node, n_dist in G[node]: 19 if not visited[n_node]: 20 dfs(n_node, dist+n_dist) 21 22max_node = 0 23 24max_dist = 0 25visited = [False]*V 26dfs(0, 0) 27max_dist = 0 28visited = [False]*V 29dfs(max_node, 0) 30 31print (max_dist) ์ตœ๊ทผ์— ํ‘ผ “1967: ํŠธ๋ฆฌ์˜ ์ง€๋ฆ„” ๋•๋ถ„์— ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค ๊ธฐ์–ตํ•˜์ž ํŠธ๋ฆฌ์˜ ์ง€๋ฆ„ = (์–ด๋–ค ํ•œ ์ •์ ์—์„œ ๊ฐ€์žฅ ๋จผ ์  P)์—์„œ ๊ฐ€์žฅ ๋จผ ์  ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ
  • ««
  • «
  • 5
  • 6
  • 7
  • 8
  • 9
  • »
  • »»
๐Ÿง  Algorithm (104) ๐ŸŒŠ C/CPP (2) โ˜• Java (8) ๐ŸŒ Javascript (9) ๐Ÿ Python (9) ๐Ÿƒ Spring (30) ๐Ÿ”จ ๊ฐœ๋ฐœ ๋„๊ตฌ (2) ๐ŸŽธ ๊ธฐํƒ€ (5) ๐Ÿ‘จโ€๐Ÿ’ป ๋ชจ๊ฐ์ฝ” (38) ๐Ÿค– ์ธ๊ณต์ง€๋Šฅ (2) ๐Ÿซ ํ•™๊ณผ ๊ณต๋ถ€ (28)
๐Ÿท๏ธ boj (53) ๐Ÿท๏ธ c (5) ๐Ÿท๏ธ c++ (4) ๐Ÿท๏ธ celery (2) ๐Ÿท๏ธ cs (16) ๐Ÿท๏ธ django (3) ๐Ÿท๏ธ docker (2) ๐Ÿท๏ธ docker-compose (1) ๐Ÿท๏ธ elk (1) ๐Ÿท๏ธ fastapi (4) ๐Ÿท๏ธ git (2) ๐Ÿท๏ธ github-actions (5) ๐Ÿท๏ธ hackerrank (3) ๐Ÿท๏ธ https (2) ๐Ÿท๏ธ java (37) ๐Ÿท๏ธ javascript (2) ๐Ÿท๏ธ jwt (1) ๐Ÿท๏ธ kubernetes (4) ๐Ÿท๏ธ nginx (2) ๐Ÿท๏ธ ocaml (1) ๐Ÿท๏ธ open-source (2) ๐Ÿท๏ธ programmers (48) ๐Ÿท๏ธ pytest (1) ๐Ÿท๏ธ python (111) ๐Ÿท๏ธ rabbitmq (2) ๐Ÿท๏ธ rag (3) ๐Ÿท๏ธ react (6) ๐Ÿท๏ธ security (3) ๐Ÿท๏ธ software-engineering (3) ๐Ÿท๏ธ spring (31) ๐Ÿท๏ธ sql (5) ๐Ÿท๏ธ ssl (1) ๐Ÿท๏ธ testing (4) ๐Ÿท๏ธ typescript (1) ๐Ÿท๏ธ vercel (1) ๐Ÿท๏ธ websocket (1)