Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Python
- set to list
- 피보나치 수
- 알고리즘 풀이
- string
- cask
- Algorithm
- python3
- list to set
- 프로그래머스
- Modified Date
- Python 나머지
- Python 몫
- list.pop(0)
- COUNT
- Unknown command: cask
- zip()
- RecursionError
- List
- sort()
- List to String
- Split
- permutations
- 알고리즘
- List 초기화
- homebrew-core is a shallow clone.
- index
- sting position
- list.sorted()
- Boto3
Archives
- Today
- Total
데이터와 코드로 세상을 바라봅니다.
[Python3] 프로그래머스 : 피보나치 수 , RecursionError 본문
오늘 알게 된 것 :
파이썬에서는 재귀를 무한정 허용해서 벌어질 문제들을 고려하여 재귀호출을 1000번으로 제한하고있다.
1000번이상을 호출하면 다음과 같은 에러가 발생한다.
=> RecursionError: maximum recursion depth exceeded while calling a Python object
출처: https://tmdahr1245.tistory.com/97 [tmdahr1245]
문제 : 피보나치 수
문제 설명
피보나치 수는 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) = 2 + 3 = 5
와 같이 이어집니다.
2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요.
제한 사항
* n은 1이상, 100000이하인 자연수입니다.
입출력 예
nreturn
3 | 2 |
5 | 5 |
입출력 예 설명
피보나치수는 0번째부터 0, 1, 1, 2, 3, 5, ... 와 같이 이어집니다.
>> Recursive를 이용하여 풀이.
def pibo(n):
if n == 0 :
return 0
elif n == 1 :
return 1
else :
return pibo(n-1) + pibo(n-2)
def solution(n):
pibo_n = pibo(n)
answer = pibo_n % 1234567
return answer
>> 결과 ERROR, Time Out (RecursionError: maximum recursion depth exceeded in comparison.)
FOR 문을 이용하여, RECURSIVE 외에 자체 적으로 수행시켜 보자.
def solution(n):
if n == 1 :
answer = 1
else :
a = 0
b = 1
for i in range(2,n+1):
c = a+b
a = b
b = c
answer = c % 1234567
>> 결과 : 통과
'Code > Python' 카테고리의 다른 글
[Python3] 프로그래머스 - 전화번호 목록 : int형 List 변환, str형 리스트 변환 (0) | 2021.02.17 |
---|---|
[Python3] 프로그래머스 - 최솟값 만들기, Zip(), sort(), list.sorted() (0) | 2021.02.05 |
[Python3] Summer/Winter Coding(~2018) - 영어 끝말잇기 (0) | 2021.01.28 |
[Python3] 2019 KAKAO BLIND RECRUITMENT - 오픈채팅방 (0) | 2021.01.25 |
[Python3] 프로그래머스 - 더 맵게 (0) | 2021.01.22 |