[백준] 2748 피보나치 수 2

cheeeese·2022년 5월 17일
0

코딩테스트 연습

목록 보기
108/151
post-thumbnail

📖 문제

https://www.acmicpc.net/problem/2748

💻 내 코드

import sys
n=int(sys.stdin.readline())
mlist=[]
num=0
for i in range(n+1):
    if i==0:
        num=0
    elif i==1:
        num=1
    else:
        num=mlist[-2]+mlist[-1]
    
    mlist.append(num)

print(mlist[-1])

💡 풀이

원래 제출했던 코드

def myFun(n):
    if n==0:
        return 0
    elif n==1:
        return 1
    elif n>1:
        return myFun(n-2)+myFun(n-1)

n=int(input())
print(myFun(n))
  • 재귀함수를 사용하면 시간초과가 뜬다
  • for문을 사용하여 list에 계산한 값을 n번 append한 뒤 맨 마지막 인덱스의 수를 출력

0개의 댓글