Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 방명록 만들기
- Forensic 절차
- 소프트웨어 개발보안 경진대회
- react
- EER
- 네이버 인턴
- frontend
- restapi
- jsp
- spring
- reversing.kr
- 소개딩
- Django
- riceteacatpanda
- webhacking 처음
- JSTL
- Layered Architecture
- 정보보호병 후기
- 동읍면 DB
- 행정지역 DB
- 메모리 포랜식
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- SessionAttribute
- DBMS
- Database
- PyAmdecoder
- mysql
- 3단계 지역 DB
- 인턴 후기
- 인턴 지원
Archives
- Today
- Total
웹찢남
[백준 14501 퇴사 문제] PYTHON 본문
dp라는 리스트를 하나 만들고 해당 배열의 index들을 일로 설정해놨다.
index의 값은 T,P를 for문으로 돌며 해당 일에 벌 수 있는 최대의 수익으로 초기화하거나 더한다.
예를 들어 위의 상담 일정표를 예로 들면
1일: [0, 0, 0, 10, 10, 10, 10, 10] (3일 후부터 10을 벎)
2일: [0, 0, 0, 10, 10, 10, 20, 20] (6일 후부터 20을 벎)
3일: [0, 0, 0, 10, 10, 10, 20, 20]
4일: [0, 0, 0, 10, 30, 30, 30, 30]
5일: [0, 0, 0, 10, 30, 30, 45, 45]
6일: [0, 0, 0, 10, 30, 30, 45, 45]
7일: [0, 0, 0, 10, 30, 30, 45, 45]
마무리일: [0, 0, 0, 10, 30, 30, 45, 45]
이런 식으로 계산을 진행한다.
그러면 마지막 index의 값이 최대 벌 수 있는 값으로 나온다.
N = int(input())
costs=[]
dp=[0]*(N+1)
for _ in range(N):
costs.append(list(map(int, input().split())))
costs.append([0,0])
for i in range(N+1):
date=costs[i][0]
cash=costs[i][1]
for j in range(i+date,N+1):
if(dp[j] < cash+dp[i]):
dp[j] = cash+dp[i]
print(dp[-1])
'백준 Algorithm' 카테고리의 다른 글
[백준 9461 파도반 수열 문제] PYTHON (0) | 2021.07.12 |
---|---|
[백준 11057 오르막 수 문제] PYTHON (0) | 2021.07.12 |
[백준 1013 Contact 문제] PYTHON (0) | 2021.04.30 |
[백준 1747 소수&팰린디움 문제] PYTHON (0) | 2021.04.29 |
[백준 2577 숫자의 개수 문제] PYTHON (0) | 2021.04.29 |
Comments