프로그래머스 LV2 - 피보나치 수
내 풀이
def solution(n):
f = [None] * 100001
f[0] = 0
f[1] = 1
for i in range(2, n+1):
f[i] = f[i-1] + f[i-2]
return f[n] % 1234567
다른 풀이
def solution(n):
pre = 0 # 이전 피보나치 수를 저장하는 변수
current = 1 # 현재 피보나치 수를 저장하는 변수
# 2부터 n까지 순회
for i in range(2, n+1):
# 현재 피보나치 수는 이전 두 피보나치 수의 합
# 이전 피보나치 수는 갱신하기 전의 현재 피보나치 수
current, pre = current + pre, current
# n번째 피보나치 수를 1234567로 나눈 나머지를 반환
return current % 1234567
출처: https://1ets-just-do-it.tistory.com/125 [파이썬은 신이야🔥🔥🔥:티스토리]
풀이 해석
- 피보나치 함수의 특성을 이용해 현재 피보나치 값과 이전의 두 값들의 합을 계속해서 최신화 하였다
배울 점
- 배열을 활용하지 않고 값을 최적화하는 방식을 이용한 사고
댓글남기기