풀이 방법


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

+ Recent posts