[백준] 쉬운 계단 수 (10844)
문제 설명
입력 및 출력
» 입력
첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100보다 작거나 같은 자연수이다.
» 출력
첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
1 | 9 |
2 | 17 |
문제 풀이(SWIFT)
//
// 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)