티스토리 뷰
1. 문제
2. 정답 코드
def fibo(n) :
if n == 0 :
return 0
elif n == 1 :
return 1
else :
l, r = 0, 1
for i in range(n-1) :
l, r = r, (l + r) % 1234567
return r
def solution(n):
answer = fibo(n)
return answer
- 재귀 함수 사용 시 시간 초과 및 런타임 에러 발생 ➡️ for문을 통한 다이나믹 프로그래밍 사용
- 8번째 줄: (l + r) % 1234567에서 1234567을 나누는 이유는 다른 언어의 경우 오버 플로우가 발생할 수도 있기 때문
- { f(n-1) + f(n-2) } % 1234567은 f(n-1) % 1234567 + f(n-2) % 1234567과 같음
728x90
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 신규 아이디 추천 파이썬 정답 코드 (0) | 2023.06.13 |
---|---|
[프로그래머스] 크레인 인형뽑기 게임 파이썬 정답 코드 (0) | 2023.06.13 |
[프로그래머스] 문자열 나누기 파이썬 정답 코드 (0) | 2023.06.13 |
[프로그래머스: 코딩테스트 연습 힌트 모음집] 체육복 파이썬 정답 코드 (0) | 2022.11.16 |
[프로그래머스: 코딩테스트 연습 힌트 모음집] 문자열 다루기 기본 파이썬 정답 코드 (0) | 2022.11.14 |