알고리즘 문제/Swift

[백준] 2579번 : 계단 오르기 - Swift

lingk 2021. 7. 24. 23:13

문제

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

 

2579번: 계단 오르기

계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점

www.acmicpc.net

코드

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])

반응형