반응형
[백준 10844번] 쉬운 계단 수 - Kotlin
https://www.acmicpc.net/problem/10844
문제
- 45656이란 수를 보자.
- 이 수는 인접한 모든 자리의 차이가 1이다.
- 이런 수를 계단 수라고 한다.
- N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구해보자.
- 0으로 시작하는 수는 계단수가 아니다
입력
- 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100보다 작거나 같은 자연수이다
출력
- 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다
풀이
private class Solution10844 {
fun solution(n: Int): Int {
val dp = Array(n + 1) { row ->
when (row) {
0 -> IntArray(10) { col ->
when (col) {
0 -> 0
else -> 1
}
}
else -> IntArray(10)
}
}
for (i in 0 until n - 1) {
dp[i + 1][0] = dp[i][1]
dp[i + 1][9] = dp[i][8]
for (j in 1 .. 8) {
dp[i + 1][j] = (dp[i][j - 1] + dp[i][j + 1]) % 1_000_000_000
}
}
return dp[n - 1].reduce{ acc, num ->
(acc + num) % 1_000_000_000
}
}
}
private fun main() {
val br = System.`in`.bufferedReader()
val bw = System.out.bufferedWriter()
bw.append("${Solution10844().solution(br.readLine().toInt())}\n")
bw.flush()
br.close()
bw.close()
}
반응형
'Software > 백준' 카테고리의 다른 글
[백준 14888번] 연산자 끼워넣기 - Kotlin (0) | 2024.05.15 |
---|---|
[백준 1238번] 파티 - Kotlin (0) | 2024.05.12 |
[백준 11659번] 구간 합 구하기 - Kotlin (0) | 2024.05.12 |
[백준 4949번] 균형잡힌 세상 - Kotlin (0) | 2024.05.12 |
[백준 2156번] 포도주 시식 - Kotlin (0) | 2024.05.12 |