그려보고 공식을 찾아보자, 값을 건너뛰면서 누적시킬 수 있다

 

 

import Foundation

var input = Int(readLine()!)!
var arr: [Int] = .init(repeating: 0, count: 3)
var dp: [Int] = .init(repeating: 0, count: 3)

for _ in 0..<input {
    arr.append(Int(readLine()!)!)
}

for i in 3..<arr.count {
    let tmp = max(dp[i-2]+arr[i], max(dp[i-3]+arr[i-1]+arr[i], dp[i-1]))
    dp.append(tmp)
}

print(dp.max()!)

 

'Algorithm > Baekjoon' 카테고리의 다른 글

백준 - 큰수 A+B (C#)  (0) 2024.11.27
C++ 2xn 타일링  (0) 2024.11.14
Swift - 백준 1927 최소 힙  (0) 2024.09.01
Swift - 백준 2606번  (0) 2024.08.30
Swift - 백준 1541번  (0) 2024.08.30
ytw_developer