[백준] 쉬운 계단 수 (10844)

문제 설명

백준 10844번 문제 링크

입력 및 출력

» 입력

첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100보다 작거나 같은 자연수이다.

» 출력

첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다.

예제 입출력(테스트케이스)

입력 출력
1 9
2 17

문제 풀이(SWIFT)

풀이 참고 1 풀이 참고 2

//
//  main.swift
//  BOJ10844_SWIFT
//
//  Created by choiyoujun on 2022/02/09.
//

let N = Int(readLine()!)!
let Modular = 1000000000
var dp = Array(repeating: [Int](repeating: 0, count: 10), count: N + 1)

dp[1][0] = 0
for i in 1...9 {
    dp[1][i] = 1
}

if N >= 2 {
    for i in 2...N {
        for j in 0...9 {
            if j == 0 {
                dp[i][j] = dp[i - 1][j + 1] % Modular
            } else if j == 9 {
                dp[i][j] = dp[i - 1][j - 1] % Modular
            } else {
                dp[i][j] = (dp[i - 1][j - 1] + dp[i - 1][j + 1]) % Modular
            }
        }
    }
}

var ans = 0
for i in 0...9 {
    ans += dp[N][i]
}

print(ans % Modular)


태그:

카테고리:

업데이트: