오뚝이개발자

[백준11052] 카드 구매하기 본문

코딩 테스트/백준

[백준11052] 카드 구매하기

땅어 2020. 4. 17. 22:02
728x90
300x250

문제


https://www.acmicpc.net/problem/11052

 

11052번: 카드 구매하기

첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000)

www.acmicpc.net

 

 

생각의 흐름


이전에 포스팅한 카드 구매하기 2와 반대로 생각하면 된다. 좀 더 쉽게 말해 그 때 min을 찾았던 것을 max로 수정해주면 된다.

 

코드


# 백준 11052

N = int(input())
card = [0]
card += list(map(int, input().split()))
# dp[i]의 값은 i개의 카드를 구매하는데 필요한 최대비용
dp = [0] * (N+1)
dp[1] = card[1]
dp[2] = max(card[1]*2, card[2])
for i in range(3, N+1):
    dp[i] = card[i]
    for j in range(1, i//2+1):
        dp[i] = max(dp[i], dp[j]+dp[i-j])

print(dp[N])

 

728x90
300x250

'코딩 테스트 > 백준' 카테고리의 다른 글

[백준11727] 2 x n 타일링 2  (0) 2020.04.21
[백준11722] 가장 긴 감소하는 수열  (0) 2020.04.20
[백준16194] 카드 구매하기 2  (0) 2020.04.15
[백준3055] 탈출  (0) 2020.04.14
[백준13023] ABCDE  (0) 2020.03.31
Comments