코딩테스트 연습 > 피보나치 수
1. 풀이 설명
memo
리스트에 계산 결괏값을 저장한 후, memo[n]
을 반환한다.
- 리스트 변수 저장 없이 재귀함수를 사용하면 메모리 초과 실패가 발생한다.
2. 나의 풀이
python
def solution(n):
memo = [0, 1]
for i in range(2, n+2):
memo.append((memo[i-1] + memo[i-2]) % 1234567)
return memo[n]
kotlin
fun solution(n: Int): Int {
val memo = IntArray(n + 1)
for (i in 0..n) {
when (i) {
0 -> memo[0] = 0
1 -> memo[1] = 1
else -> memo[i] = (memo[i - 1] + memo[i - 2]) % 1234567
}
}
return memo[n]
}
3. 배운점
- 저장된 값을 12345로 나눈 나머지를 반환해야하는 문제일 때,
저장하는 시점부터 12345로 나눈 나머지 값을 저장할 수 있다.