[백준] 이친수 (2193)(kotlin)

문제 설명

백준 2193번 문제 링크

입력 및 출력

» 입력

첫째 줄에 N이 주어진다.

» 출력

첫째 줄에 N자리 이친수의 개수를 출력한다.

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

입력 출력
3 2
6 8

문제 풀이1

fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
    val n = readLine().toInt()
    val check = LongArray(n + 1)

    println(dp(n, check))
}

fun dp(n: Int, check: LongArray): Long {
    return when {
        n == 1 -> 1
        n == 2 -> 1
        check[n] != 0L -> check[n]
        else -> {
            check[n] = dp(n - 1, check) + dp(n - 2, check)
            check[n]
        }
    }
}

Debug1

debug1_image1 debug1_image2