문제
https://www.acmicpc.net/problem/2579
코드
var num = Int(readLine()!)
var arr = [Int]()
var dp = [Int](repeating: 0, count: num!)
for i in 0 ..< num!
{
let input = Int(readLine()!)
arr.append(input!)
if i == 0{dp[0] = arr[0]}
else if i == 1 {dp[1] = max(dp[0]+arr[1],arr[1])}
else if i == 2 {dp[2] = max(dp[0]+arr[2],arr[1]+arr[2])}
else {dp[i] = max(dp[i-3]+arr[i-1]+arr[i], dp[i-2]+arr[i])}
}
print(dp[num!-1])
반응형
'알고리즘 문제 > Swift' 카테고리의 다른 글
[백준] 11047번 : 동전 0 - Swift (0) | 2021.08.06 |
---|---|
[백준] 6549번 : 히스토그램에서 가장 큰 직사각형 - Swift (0) | 2021.07.25 |
[백준] 9095번 : 1, 2, 3 더하기 - Swift (0) | 2021.07.21 |
[백준] 1463번 : 1로 만들기 - Swift (0) | 2021.07.21 |
[백준] 11729번 : 하노이 탑 이동 순서 - Swift (0) | 2021.07.14 |