[프로그래머스] 피보나치 수열

kiki·2024년 1월 2일
0

프로그래머스

목록 보기
30/78

문제 링크

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

문제 설명

2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴해라
참고로 피보나치 수열은 0번째부터 [0,1,1,2,3,5,... ]의 값을 가짐

1차 시도

def solution(n):
    x = [0,1]
    for i in range(n-1):
        x.append(x[-1] + x[-2])
    return x[-1]%1234567

n번째 까지의 피보나치 수열을 구하고, n번째 피보나치 수를 1234567로 나눈 나머지를 리턴하는 방법
단순 그자체

2차 시도

def solution(n):
    a, b = 0, 1
    for i in range(n-1):
        a, b = b, a+b
    return b%1234567

굳이 리스트를 만들어 피보나치 수열을 저장해줄 필요가 없다!
우리가 필요한 건 앞의 두 숫자이니 그 두 숫자만 저장해주면 되는 것

정리

  • 필요한 정보가 무엇인지 잘 생각하고 저장. 필요 없는 정보까지 저장할 필요 없다.

0개의 댓글