https://www.acmicpc.net/problem/2156
2156번: 포도주 시식
효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규
www.acmicpc.net
경우의 수
●○●● : dp[i-3] 값에서 현재 와인 값과 이전 와인 값을 더한 경우
●○● : dp[i-2] 값에서 현재 와인 값을 더한 경우
○ : 현재 와인을 먹지 않는 경우 (dp[i-1])
import Foundation
let n = Int(readLine()!)!
var wine = Array(repeating: 0, count: n+1)
var dp = Array(repeating: 0, count: n+1)
for i in 1...n {
wine[i] = Int(readLine()!)!
}
dp[1] = wine[1]
if n > 1 {
dp[2] = wine[1] + wine[2]
for i in 3..<n+1 {
dp[i] = max(dp[i-3] + wine[i-1] + wine[i], dp[i-2] + wine[i], dp[i-1])
}
}
print(dp[n])
'Algorithm > BOJ' 카테고리의 다른 글
[코테] 어린 왕자 (0) | 2024.03.08 |
---|---|
[코테] 동전 (0) | 2024.03.08 |
[코테] 평범한 배낭 (1) | 2024.03.08 |
[코테] 1로 만들기 (0) | 2024.03.05 |
[코테] 2xn 타일링 (1) | 2024.03.05 |