PS/Programmers
[프로그래머스] 피보나치 수
RUBY_루비
2020. 10. 27. 23:59
출처:: programmers.co.kr/learn/courses/30/lessons/12945?language=python3
분류::
1. 문제 이해 및 해결과정
2. 풀이방법
1. [python] 메모이제이션
def solution(n):
memoi=[0 for i in range(n+1)]
memoi[1]=1
for i in range(2,n+1):
memoi[i]=(memoi[i-1]+memoi[i-2])%1234567
return memoi[n]
2. [python] 식
def solution(n):
a,b=0,1
for i in range(n):
a,b=(b)%1234567,(a+b)%1234567
return a
3. 오답원인
1. 재귀 -> 시간초과 + 런타임에러
def solution(n):
if n==1 or n==2:
return 1
else:
return (solution(n-1)+solution(n-2))%1234567
2. 식 -> 시간초과 + 런타임에러 %1234567 해주어야 함
def solution(n):
a,b=0,1
for i in range(n):
a,b=b,a+b
return a
4. 알게된 점