https://www.acmicpc.net/problem/14501
백준이의 최대 수익을 내기 위한 코드
day = int(input())
Ti = []
Pi = []
salary = [0 for i in range(day+1)]
sum = 0
for i in range (0,day):
T,P = map(int,input().split())
Ti.append(T)
Pi.append(P)
for i in range(0,day):
sum = max(sum,salary[i])
if i+Ti[i]>day:
continue
salary[i+Ti[i]] = max(sum+Pi[i],salary[i+Ti[i]])
print(max(salary))
- list 생성할때 for문말고 [0]*배열개수 이렇게 해도 선언 됨
- DP문제이고 퇴사일이 넘지 않도록 뒤에서 계산하는 방식도 있는데 그 부분은 조금 더 생각하고 짜봐야겠다
반응형
'Study' 카테고리의 다른 글
백준1463: 1로 만들기(Python) (0) | 2021.12.20 |
---|---|
백준1789: 수들의 합 (Python) (0) | 2021.12.12 |
백준11653: 소인수 분해 (Python) (0) | 2021.12.12 |
백준1065: 한수의 개수를 출력하는 프로그램 (0) | 2021.12.01 |
[알고리즘] 버블 정렬(bubble sort)이란? (0) | 2021.11.15 |
댓글