본문 바로가기

코테 공부/python

[프로그래머스] #12945 Python 피보나치 수

https://school.programmers.co.kr/learn/courses/30/lessons/12945#

당연히 재귀 때리면 되겠거니 했는데 파이썬은 다르다고 한다

시간초과 뜨길래 질문하기 보니 재귀가 더 오래걸려서 포문을 하라고 해서 포문으로 돌렸는데 왜.. 풀이 +5점이나 되지..? 

드문 풀이 일리가 없는데..!!

그래도 간만에 간단하게 풀려서 좋당..

내 풀이

def solution(n):
    temp1 = 0
    temp2 = 1
    sum = 1
    for i in range(3, n + 1):
        temp1 = temp2
        temp2 = sum   
        sum = temp1 + temp2
        
    return sum % 1234567

 

타풀이 적용

와 그와중에 또 깔끔하게도 풀었다 타풀이..

sum 없이 가면 이렇게 range를 하나 줄여서 하면 되니까..!

def solution(n):
    temp1 = 0
    temp2 = 1
    for _ in range(2, n + 1):
        temp1, temp2 = temp2, temp1 + temp2
        
    return temp2 % 1234567

오 아예 리스트를 만들어 그 전값들을 저장하는 방법도 있었다