백준 알고리즘 14501. 퇴사
2024. 3. 27. 18:34ㆍ코딩 테스트/백준
https://www.acmicpc.net/problem/14501
14501번: 퇴사
첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.
www.acmicpc.net
전체 코드
전희경님 코드
import sys
# sys.stdin = open("sample_input.txt", "r")
# 상담이 가능한 기간 n (n+1일에 퇴사)
n = int(sys.stdin.readline())
schedules = [[] for _ in range(n+1)]
for i in range(1, n+1):
schedules[i] = list(map(int, sys.stdin.readline().split()))
# [[], [3, 10], [5, 20], [1, 10], [1, 20], [2, 15], [4, 40], [2, 200]]
print(schedules)
dp = [0 for i in range(n+2)]
# 거꾸로 접근
for i in range(n, 0, -1):
if i + schedules[i][0] - 1 > n: # 퇴사일보다 오래 걸리면
dp[i] = dp[i+1]
else: # 퇴사일보다 짧게 걸리면
dp[i] = max(schedules[i][1] + dp[i + schedules[i][0]], dp[i+1])
print(i)
print(dp)
print(dp[1])
'코딩 테스트 > 백준' 카테고리의 다른 글
백준 알고리즘 2667. 단지번호붙히기 (0) | 2024.03.28 |
---|---|
백준 알고리즘 16564. 히오스 프로그래머 (0) | 2024.03.28 |
백준 알고리즘 12865. 평범한 배낭 (0) | 2024.03.27 |
백준 알고리즘 1753. 최단경로 (0) | 2024.03.27 |
백준 알고리즘 9251. LCS (0) | 2024.03.26 |