bong-u/til

๐Ÿ  home ๐Ÿˆ repository
new ๋ฐฑ์ค€ - 1890 : ์ ํ”„ (S1)
๐Ÿง  Algorithm
1N = int(input()) 2 3L = [list(map(int, input().split())) for _ in range(N)] 4dp = [[0]*N for _ in range(N)] 5dp[0][0] = 1 6for i in range(N): 7 for j in range(N): 8 if L[i][j] == 0: 9 continue 10 if dp[i][j] != 0: 11 right = j+L[i][j] 12 bottom = i+L[i][j] 13 14 if right < N: 15 dp[i][right] += dp[i][j] 16 if bottom < N: 17 dp[bottom][j] += dp[i][j] 18print (dp[N-1][N-1]) dp์— ์žˆ๋Š” ๊ฐ’์„ ๋”ํ•ด์•ผํ•˜๋Š”๋ฐ 1์„ ๋”ํ•ด์„œ ๋ช‡ ๋ฒˆ ํ‹€๋ ธ๋‹ค ๊ฑฐ์˜ ํ˜ผ์ž ํž˜์œผ๋กœ ํ’€์—ˆ๋‹ค
new ๋ฐฑ์ค€ - 2096 : ๋‚ด๋ ค๊ฐ€๊ธฐ (G5)
๐Ÿง  Algorithm
1N = int(input()) 2L = [list(map(int, input().split())) for _ in range(N)] 3dp1 = [L[0][i] for i in range(3)] 4dp2 = [L[0][i] for i in range(3)] 5 6for i in range(1, N): 7tmp1 = [0]*3 8tmp2 = [0]*3 9for j in range(3): 10 11 if j == 0: 12 tmp1[0] = L[i][j] + max(dp1[0], dp1[1]) 13 tmp2[0] = L[i][j] + min(dp2[0], dp2[1]) 14 elif j == 1: 15 tmp1[1] = L[i][j] + max(dp1[0], dp1[1], dp1[2]) 16 tmp2[1] = L[i][j] + min(dp2[0], dp2[1], dp2[2]) 17 else: 18 tmp1[2] = L[i][j] + max(dp1[1], dp1[2]) 19 tmp2[2] = L[i][j] + min(dp2[1], dp2[2]) 20 dp1 = [i for i in tmp1] 21 dp2 = [i for i in tmp2] 22 23print (max(dp1), min(dp2)) Memoization๊ณผ์ •์ด ๋‹ค๋ฅธ memoization ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์ข…์†์ ์ด๋ผ๋ฉด ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•œ๋‹ค ์œ„ ์ฝ”๋“œ์—์„œ๋Š” ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด tmp1, tmp2 ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค ๊นŠ์ด ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ ๋ฒˆ ์ œ์ถœํ•ด์„œ WA๊ฐœ์ˆ˜๊ฐ€ ์กฐ๊ธˆ ๋งŽ๋‹ค;;
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]) ํ˜ผ์ž ํ’€์—ˆ๋‹ค!
  • ««
  • «
  • 5
  • 6
  • 7
  • 8
  • 9
  • »
  • »»
๐Ÿง  Algorithm (104) ๐ŸŒŠ C/CPP (2) โ˜• Java (8) ๐ŸŒ Javascript (9) ๐Ÿ Python (9) ๐Ÿƒ Spring (30) ๐Ÿ”จ ๊ฐœ๋ฐœ ๋„๊ตฌ (2) ๐ŸŽธ ๊ธฐํƒ€ (7) ๐Ÿ‘จโ€๐Ÿ’ป ๋ชจ๊ฐ์ฝ” (38) ๐Ÿค– ์ธ๊ณต์ง€๋Šฅ (2) ๐Ÿซ ํ•™๊ณผ ๊ณต๋ถ€ (28)
๐Ÿท๏ธ boj (53) ๐Ÿท๏ธ c (5) ๐Ÿท๏ธ c++ (4) ๐Ÿท๏ธ celery (2) ๐Ÿท๏ธ cs (18) ๐Ÿท๏ธ 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)