코딩 테스트/백준

[백준 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