티스토리 뷰
728x90
반응형
https://www.acmicpc.net/problem/14501
[풀이]
전형적인 DP문제이다.
이문제를 통해서 DP가 미숙함을 알게됐다.
좀더 공부해야겠다.
이 문제에서 주의해야할 점이
i번째날에 일을 하면, i+1번째날에 돈을 받는다.
반면 i번째날에 일을 안하면, i+1번째날은 돈을 받지않는다.
그리고 예제4번이 왜 90이 나오는지를 이해해야한다.
설명이 잘되어있는 블로그 2가지가 있다.
본인도 여기에 참고했다.
[코드]
import sys
from copy import deepcopy
input=sys.stdin.readline
MAX_DAY=17
T=[0]*(MAX_DAY)
P= [0]*(MAX_DAY)
DP=[0]*MAX_DAY
#입력
N=int(input())
for i in range(1,N+1):
T[i], P[i]= map(int, input().strip().split())
MAX=0
# N번째날에 일한다면, N+1번째 날에 돈을 받는다.
for i in range(1,N+1):
#i번째날에 일을 한경우-> (i+1)번째날에 돈을 받는다.
if i+T[i]<=N+1:
DP[i+T[i]]=max(DP[i+T[i]], DP[i]+P[i])
MAX= max(MAX, DP[i+T[i]])
#i번째날에 일을 안한 경우-> (i+1)번째날에 돈을 받지 않는다.
DP[i+1]=max(DP[i+1], DP[i])
MAX=max(MAX, DP[i+1])
print(MAX)
[Java]
728x90
반응형
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ-1062] 가르침 (0) | 2020.03.18 |
---|---|
[BOJ-1966] 프린터 큐 (0) | 2020.03.17 |
[BOJ-1238] 파티 (0) | 2020.03.16 |
[BOJ-10026] 적록색약 (0) | 2020.03.15 |
[BOJ-1149] RGB거리 (0) | 2020.03.15 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 참고
- MongoDB
- typeORM
- OS
- nestjs
- git
- 한달어스
- vscode
- 클린아키텍쳐
- gem
- node.js
- MySQL
- 습관개선
- IT용어
- 개발용어
- TDD
- 한달독서
- nestjs jest
- 갓생살자
- Nest.js
- 미완
- 바이트디그리
- 나도 할 수 있다
- Jekyll
- 스마트폰중독
- TypeScript
- 디지털디톡스
- RDBMS
- jest
- Mongoose
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함