본문 바로가기

스터디 1일 1커밋

240315 [BOJ/백준] 14501. 퇴사

 

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

 

14501번: 퇴사

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

www.acmicpc.net


나의 코드

n = int(input())
arr = [list(map(int, input().split())) for _ in range(n)]

profit = [0]*(n+1)
for i in range(n):
    for j in range(i+arr[i][0], n+1):
        if profit[j] < profit[i] + arr[i][1]:
            profit[j] = profit[i] + arr[i][1]

print(max(profit))

 결과


j의 범위를 설정해 처음부터 돌면서 상담할 수 있는 날의 이익을 더해주며 profit리스트에 구한 이익을 재할당 해주는 코드이다. 미량이의 코드가 다른 사람들의 코드보다 이해하기 쉬워서 참고했다! 뒤에서부터 가능한 날의 이익을 profit 리스트에 할당하는 dp코드도 있던데 생각날 때 다시 한 번 봐야겠다.