2024/10/16
[Today]
백준 1차 :: 누적 172개 / (실버3) 14501. 퇴사 (실버1) 1697. 숨바꼭질
[전체 코딩 테스트 문제 풀이 과정]
• 프로그래머스 :: 누적 372개 / (Lv0) 236개 (Lv1) 73개 (Lv2) 53개 (Lv3) 10개
• 백준 1차 :: 누적 172개 / (브론즈1) 13개 (브론즈2) 23개 (브론즈3) 26개 (브론즈4) 9개 (브론즈5) 37개 (실버1) 4개 (실버2) 6개 (실버3) 10개 (실버4) 19개 (실버5) 18개 (골드1) 1개 (골드5) 1개
• SW expert academy:: 누적 15개 / D1 6개 D2 9개
풀이한 문제
백준 실버3
14501번: 퇴사 (acmicpc.net)
실버1
1697번: 숨바꼭질 (acmicpc.net)
문제 풀이
백준 실버3
14501번: 퇴사 (acmicpc.net)
n = int(input())
ls = [list(map(int,input().split())) for i in range(n)]
best = [0]*(n+1) #그래서 이게 8이구나..
for i in range(n-1,-1,-1): #뒤부터
time = ls[i][0] #2 1
pay = ls[i][1] #15 20
if i + time <= n: #4+2 <= 7 / 3+1<7 / 2
best[i] = max(best[i+1],pay+best[i+time]) #하는 경우와 안하는 경우 / max(0,15+0) max(15,20+15)
else: #6+2 > 7 / 5+4 > 7 /
best[i] = best[i+1] #[0,0,0,35,15,0,0,0]
print(best[0])
실버1
1697번: 숨바꼭질 (acmicpc.net)
from collections import deque
def find(nn,kk):
if nn>kk:
return nn-kk
maxx = 100000
visited = [-1]*(maxx+1)
visited[nn] = 0 #현재 위치
dd = deque([nn])
while dd:
now = dd.popleft() #업데이트 위치
can = [now-1,now+1,2*now]
for dot in can:
if 0<=dot<=maxx and visited[dot] ==-1:
visited[dot] = visited[now]+1
dd.append(dot)
if dot == kk :
return visited[kk]
return visited[kk]
nn,kk = map(int,input().split())
print(find(nn,kk))
미완성 문제
프로그래머스 Lv2
- 다리를 지나는 트럭