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

lemythe423·2023년 7월 3일
0
post-thumbnail

문제

풀이

나의 풀이

  • 재귀로 접근했다가 아닌 거 같아서 반복문으로 바꿨다
  • n이라는 숫자까지 반복하는 건줄 알았는데 횟수였다
  • 중간중간에 1234567로 계속 나눠줘야 계산이 빠르게 진행된다

dp라는 배열을 만든다음에 1칸, 2칸 전의 값을 가져와서 더해나가는 걸 n번 진행하는 방식

def solution(n):
    dp = [0] * (n+1) 
    dp[1] = 1

    idx = 2
    while idx <= n:
        dp[idx] = (dp[idx-1] + dp[idx-2])%1234567
        idx += 1

    return dp[n]

다른 풀이

따로 배열을 만들지 않고 n1, n2라는 값에 이전 값들을 저장해서 더해나가는 방식

def solution(n):
    n1, n2 = 0, 1
    cur = 0
    while cur<n:
        n1, n2 = n2, (n1+n2)%1234567
        cur += 1
    return n1

profile
아무말이나하기

0개의 댓글