피보나치 수
코딩테스트 연습 - 피보나치 수
피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) =
programmers.co.kr
- 내 풀이 1
- 재귀함수: 숫자가 커지면 런타임 에러
def solution(n):
answer=0
if n<=0:
answer= 0
elif n==1:
answer= 1
else:
answer=solution(n-2)+solution(n-1)
return answer%1234567
- 내 풀이 2
- 함수를 따로 정의
- 앞에서 계산한 값은 저장하고 다시 불러와야 시간 ↓
def fibo(result):
sum=result[-2]+result[-1]
result.append(sum)
return sum
def solution(n):
result=[0,1]
for i in range(2,n+1):
answer=fibo(result)
return answer%1234567 #1234567로 나눈 나머지 값 요구
print(solution(3))=2
print(solution(5))=5
print(solution(7))=13
- 다른 사람 풀이
- 같은 함수 내에서 바로 계산
def solution(num):
answer = [0,1]
for i in range(2,num+1):
answer.append(answer[i-1]+answer[i-2])
return answer[-1]%1234567
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] [Level 2] 최솟값 만들기 (0) | 2022.04.20 |
|---|---|
| [프로그래머스] [Level 2] [스택/큐] 주식가격 (0) | 2022.04.20 |
| [프로그래머스] [Level 2] 행렬의 곱셈 (0) | 2022.04.17 |
| [프로그래머스] [Level 2] [탐욕법(Greedy)] 구명보트 (0) | 2022.04.17 |
| [프로그래머스] [Level 2] JadenCase 문자열 만들기 (0) | 2022.04.13 |