[백준] 01타일 (1904)(kotlin)
문제 설명
입력 및 출력
» 입력
첫 번째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 1,000,000)
» 출력
첫 번째 줄에 지원이가 만들 수 있는 길이가 N인 모든 2진 수열의 개수를 15746으로 나눈 나머지를 출력한다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
4 | 5 |
문제 풀이1
var N = 0
var dp = intArrayOf()
fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
N = readLine().toInt()
dp = IntArray(N + 2) { -1 }
dp[0] = 0
dp[1] = 1
dp[2] = 2
println(fibo(N))
}
fun fibo(tile: Int): Int {
if (dp[tile] == -1) {
dp[tile] = (fibo(tile - 1) + fibo(tile - 2)) % 15_746
}
return dp[tile]
}