6W.5D-DP

Dazz_heyDay ·2021년 8월 7일
0

Python) Algorithm_study

목록 보기
34/39

✏️문제[1,2,3 더하기]

https://www.acmicpc.net/problem/9095

N=int(input())
def f(num):
	if num==1:
    	return 1
    elif num==2:
    	return 2
    elif num==3:
    	return 3
    else:
    	return f(num-1)+f(num-2)+f(num-3)
 for i in range(N):
 	num=int(input())
    print(f(num))
    

✏️문제[RGB거리]

https://www.acmicpc.net/problem/1149

N = int(input())
dist = []
for i in range(N):
    dist.append(list(map(int, input().split())))
for i in range(1, len(dist)):
    dist[i][0] = min(dist[i - 1][1], dist[i - 1][2]) + dist[i][0]
    dist[i][1] = min(dist[i - 1][0], dist[i - 1][2]) + dist[i][1]
    dist[i][2] = min(dist[i - 1][0], dist[i - 1][1]) +dist[i][2]
print(min(dist[n - 1][0], dist[n - 1][1], dist[n - 1][2]))

✏️문제[포도주와 시식]

https://www.acmicpc.net/problem/2156

n=int(input())
li=[0]*10000
for i in range(n):
  li[i]=int(input())

d=[0]*10000
d[0]=ali[0]
d[1]=li[0]+li[1]
d[2]=max(li[2]+li[0], li[2]+li[1], d[1])
for i in range(3,n):
  d[i]=max(li[i]+d[i-2], li[i]+li[i-1]+d[i-3], d[i-1])

print(max(d))
profile
Why.Not.Now

1개의 댓글

comment-user-thumbnail
2021년 8월 8일

저는 다이나믹 프로그래밍 이제 겨우 느낌만 알 것 같아요,, 깔끔한 코드 잘 보고 갑니다! 이번주 수고 많으셨어요~

답글 달기