일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 웹
- 리액트
- AWS
- 자바스크립트
- TypeScript
- 컴퓨터공학
- 알고리즘
- 파이썬
- 가상화
- CSS
- 백준
- BFS
- 백엔드
- next.js
- HTML
- 블록체인
- 프론트엔드
- react
- node.js
- 클라우드
- 이슈
- 솔리디티
- kubernetes
- 타입스크립트
- JavaScript
- es6
- 이더리움
- docker
- 쿠버네티스
- k8s
Archives
- Today
- Total
즐겁게, 코드
BOJ 15624번 - 피보나치 수 7 본문
[백준 온라인 저지 - 문제 링크]
N번째 피보나치 수를 구하는 문제입니다.
다만 N의 범위가 0 ~ 1백만 사이로, 꽤나 큰 피보나치 수를 구해야 합니다.
우선 이 문제는 파이썬 + 재귀 조합으로는 풀 수 없습니다!
C++이나 자바 등의 언어에서는 어떤지 모르겠지만, 파이썬은 기본적으로 1000번까지의 *재귀 호출만을 허용합니다.
따라서 메모이제이션을 활용하는 재귀 함수 코드로는 런타임 에러를 피할 수 없게 됩니다.
(* sys 모듈을 불러온 후 sys.setrecursionlimit() 함수를 활용하면 최대 재귀 깊이를 조정할 수 있긴 합니다만, 이 문제에서는 메모리 초과 에러에 걸리게 됩니다.)
그래서, 이 문제는 잠깐 초심(?) 으로 돌아가 단순 for문을 활용해 해결할 수 있습니다.
[정답 코드 - Python]
N = int(input())
a, b, c = 0, 1, 1
temp = 0
for i in range(N):
temp = c
a = b % 1000000007
b = temp % 1000000007
c = a + b
print(a)
C++과는 다르게 Long Long 등 자료형으로 인한 고민을 덜 수 있으니, 파이썬으로는 난이도가 확 내려가는 문제였습니다.
반응형
'💯 알고리즘 > 백준 온라인 저지' 카테고리의 다른 글
BOJ 2178번 - 미로 탐색 (0) | 2021.04.02 |
---|---|
BOJ 2667번 - 단지번호붙이기 (1) | 2021.03.29 |
BOJ 1012번: 유기농 배추 (0) | 2021.03.13 |
BOJ 1932번 - 정수 삼각형 (1) | 2021.03.10 |
BOJ 1912번 - 연속합 (1) | 2021.01.31 |
Comments
소소한 팁 : 광고를 눌러주시면, 제가 뮤지컬을 마음껏 보러다닐 수 있어요!
와!! 바로 눌러야겠네요! 😆