minimimi

[백준] 14501 퇴사 본문

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

[백준] 14501 퇴사

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

문제출처] 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))
반응형

'프로그래밍 공부 > 알고리즘' 카테고리의 다른 글

[백준] 15650 N과 M (2)  (0) 2021.09.16
[백준] 11650 좌표 정렬하기  (0) 2021.09.13
[백준] 1436 영화감독 숌  (0) 2021.09.08
[백준] 1012 유기농 배추  (0) 2019.09.08
[백준] 2606 바이러스  (0) 2019.09.03