코딩 테스트/백준
[백준 2024/10/12] 154856번 퇴사 2
미뿌감
2024. 10. 12. 10:52
728x90
1. 문제
https://www.acmicpc.net/problem/15486
2. 접근 방법
이전에 풀었던 퇴사 문제와 동일하게 풀었는데 풀렸다..!
https://potatoscatteringsmile.tistory.com/302
[백준 2024/10/09] 14501번 퇴사
1. 문제https://www.acmicpc.net/problem/14501 2. 접근 방법이번 문제는 dp를 이용한 문제이다.이는 해당 Ti로부터 뒤에 값이 이용 불가해 지기 때문에, 뒤에서 부터 계산을 하는 것이 편리할 것이라는 생각
potatoscatteringsmile.tistory.com
3. 코드
def get_max_profit(n, dp):
profit = [0] * (n+1)
if dp[n-1][0] == 1:
profit[n-1] = dp[n-1][1]
for i in range(n-2, -1, -1):
if i + dp[i][0] > n:
profit[i] = profit[i+1]
continue
if profit[dp[i][0] + i] + dp[i][1] > profit[i+1]:
profit[i] = profit[dp[i][0] + i] + dp[i][1]
continue
profit[i] = profit[i+1]
return profit[0]
if __name__ == "__main__":
n = int(input())
dp = []
for _ in range(n):
tp = list(map(int, input().split()))
dp.append(tp)
print(get_max_profit(n, dp))
728x90