풀이 방법
1. recursion을 사용하게 되면 n이 100000 이하이므로 불가능
2. 따라서 a, b, c를 두어, c는 a+b, a는 b, b는 c 이런식으로 진행하여 계산량 최소화
3. 마지막에 1234567로 나눈 나머지 수를 리턴해주면 된다.
def solution(n):
answer = 0
a = 0
b = 1
c = 1
if n == 1:
return 1
for i in range(2, n+1):
c = a + b
a = b
b = c
answer = c % 1234567
return answer
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
'알고리즘[Python] > 프로그래머스' 카테고리의 다른 글
[ Lv 2 ] 땅따먹기 (0) | 2021.07.04 |
---|---|
[ Lv 2 ] [3차] 방금그곡 (0) | 2021.07.03 |
[ Lv 2 ] 방문 길이 (0) | 2021.06.30 |
[ Lv 2 ] 쿼드압축 후 개수 세기 (0) | 2021.06.30 |
[ Lv 2 ] 스킬트리 (0) | 2021.06.29 |