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

그녕·2024년 4월 29일
0

알고리즘 문제 풀이

목록 보기
35/37

문제 링크

처음 내 코드

def solution(n):
    if n<2:
        return n
    else:
        return (solution(n-1)+solution(n-2))%1234567

=> 시간초과 뜸

배열 풀이

다른 사람들의 풀이를 보니 배열을 쓰라고 해서 배열로 해봄

def solution(n):
    ans =[]
    for i in range(n+1):
        if i<2:
            ans.append(i)
        else:
            s=ans[i-1]+ans[i-2]
            ans.append(s%1234567)
    return ans[n]

=> 이렇게 배열에 집어넣고 배열의 하나의 값으로 뽑는게 좀 더 시간이 적게 되었다. 통과

또 다른 풀이

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

이런 방법도 있다. 신기하군...

profile
AI 개발자

0개의 댓글