프로그래밍 공부/알고리즘

[백준] 14501 퇴사

99mini 2021. 9. 9. 16:36
반응형
SMALL

문제출처] https://www.acmicpc.net/problem/14501

 

14501번: 퇴사

첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.

www.acmicpc.net


문제요약

다이나믹 프로그래밍을 통하여 문제 풀이. 

풀이

dp 배열에 테이블의 점수를 다이나믹 프로그램을 통하여 담으면 된다. dp는 인덱스가 하나 증가할 때마다 최대값을 담아댜 된다.


소스코드는 Python 3으로 작성되었습니다.

n = int(input())
table = [[0,0] for i in range(20)] 
dp =[0]*20

for i in range(1,n+1):
  table[i][0], table[i][1] = [int(a) for a in input().split()]

for i in range(1, n + 1) :
  if i + table[i][0] > n + 1 :
    pass
  else:
    dp[i + table[i][0]] = max(dp[i + table[i][0]],table[i][1] + dp[i])
  dp[i + 1] = max(dp[i + 1], dp[i])

print(max(dp))
반응형
LIST