백준 10826번 바로가기

나의 풀이

fibo = [0] + [1] * 10000
n = int(input())

if n < 3:
  print(fibo[n])
else:
  for i in range(3, n+1):
    fibo[i] = fibo[i-1] + fibo[i-2]
  print(fibo[n])

고수의 풀이

a=0;b=1;exec("a,b=b,a+b;"*int(input()));print(a)

출처

CODE REVIEW

  1. DP를 이용해서 피보나치 수를 구하는 문제. DP를 이용하지 않고 함수로 구현하면 메모리 초과의 문제에 부딪힌다.
  2. 고수의 풀이를 보면 a,b=b,a+b를 볼 수 있는데, index 고려하지 않아도 되는 점이 매우 편리하다.