Programmers

[프로그래머스 / 파이썬 풀이] 피보나치 수

Hoo_Dev 2023. 2. 10. 10:06
def solution(n):
    answer = 0
    stack = [0, 1]
    
    for i in range(100001):
        stack.append(stack[-1] + stack[-2])
        if i == n:
            answer = stack[n] % 1234567
            break
    
    return answer

스택에 미리 정의 된 0, 1 번째 수를 작성하고 피보나치 수는 맨마지막 값과 그 마지막 값의 전 값을 더하기 때문에 해당하는 값을 스택에 추가해준다.

그리고 n의 값과 더해준 값의 인덱스가 같다면 break를 해줘서 효율성을 높여준다.

 

나는 범위를 문제에 맞게 100000 까지 순회하고 해당 인덱스에서 break하는 식으로 작성했지만, 범위를 range(n+1)로 설정한다면 좀 더 좋은 코드를 작성 할 수 있었을 것 같다.