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코드도 있던데 생각날 때 다시 한 번 봐야겠다.
'스터디 1일 1커밋' 카테고리의 다른 글
| 240319 [BOJ/백준] 2667. 단지번호붙이기 (3) | 2024.03.19 |
|---|---|
| 240318 [BOJ/백준] 31575. 도시와 비트코인 (2) | 2024.03.19 |
| 240314 [BOJ/백준] 1092. 배 (0) | 2024.03.14 |
| 240313[BOJ/백준] 7983. 내일 할거야 (0) | 2024.03.13 |
| 240312 [BOJ/백준] 4673. 셀프 넘버 (0) | 2024.03.12 |