문제
10826번: 피보나치 수 4
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
풀이
문제에서 주어진 범위가 크기 때문에 BigInteger 자료형을 활용해야 한다. BigInteger 배열을 이용해 DP로 피보나치 계산을 해주면 된다.
코드
import java.math.BigInteger
fun main() {
val br = System.`in`.bufferedReader()
val bw = System.out.bufferedWriter()
val num = br.readLine().toInt()
val dp = Array(100001) { BigInteger.ZERO }
dp[1] = BigInteger.ONE
for(i in 2 .. num) {
dp[i] = dp[i-1] + dp[i-2]
}
bw.write("${dp[num]}")
bw.flush()
bw.close()
br.close()
}
'알고리즘 > Baekjoon' 카테고리의 다른 글
[백준] 1431번: 시리얼 번호 - Kotlin[코틀린] (0) | 2024.01.02 |
---|---|
[백준] 1138번: 한 줄로 서기 - Kotlin[코틀린] (0) | 2024.01.01 |
[백준] 2578번: 빙고 - Kotlin[코틀린] (0) | 2023.12.27 |
[백준] 1743번: 음식물 피하기 - Kotlin[코틀린] (0) | 2023.12.21 |
[백준] 1965번: 상자넣기 - Kotlin[코틀린] (0) | 2023.12.20 |