1. 재귀
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val input = br.readLine().toInt()
print(fibonacci(input))
}
fun fibonacci(N: Int): Int {
return if (N < 2) N else fibonacci(N - 1) + fibonacci(N - 2)
}
//fun fibonacci(N: Int): Int = when (N) { //코틀린스럽게
// 0 -> 0
// 1 -> 1
// else -> fibonacci(N - 1) + fibonacci(N - 2)
//}
2. 배열
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val input: Int = br.readLine().toInt()
val fibonacci = IntArray(input + 1)
for (i in fibonacci.indices) {
when (i) {
0 -> fibonacci[0] = 0
1 -> fibonacci[1] = 1
else -> fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2]
}
}
print(fibonacci[input])
}
'개발 > 알고리즘' 카테고리의 다른 글
[알고리즘] 백준 10989번 : 수 정렬하기 3 (Kotlin) (1) | 2020.12.11 |
---|---|
[알고리즘] 백준 2798번 : 블랙잭 (Kotlin) (0) | 2020.12.08 |
[알고리즘] 백준 1929번 : 소수 구하기 (Koltin) (0) | 2020.12.06 |
[알고리즘] 백준 2839번 : 설탕 배달 (Kotlin) (0) | 2020.12.02 |
[알고리즘] 백준 1152번 : 단어의 개수 (Kotlin) (0) | 2020.12.01 |
댓글