백준 1006 피보나치 함수 파이썬

최대 1 분 소요

백준 1006 피보나치 함수 풀이

접근방식

  1. 문제에서 주어진 것처럼 결국 출력 결과는 fibo[i-1] + fibo[i-2]라는
    규칙성이 존재함을 알 수 있습니다.
  2. 0과 1을 각각 서로 다른 리스트로 저장하여 매칭시켜 출력합니다.
  3. 이를 위해 각각의 리스트의 첫번째 원소와 두번째 원소를 지정해주고
  4. 이를 for문을 통해 40번째까지 구합니다.
# 입력받기
import sys

input = lambda: sys.stdin.readline().rstrip()

dp_z = [0 for i in range(41)]

dp_o = [0 for i in range(41)]

dp_z[0] = 1
dp_z[1] = 0
dp_o[0] = 0
dp_o[1] = 1

for i in range(2, 41):
    dp_z[i] = dp_z[i-1] + dp_z[i-2]
    dp_o[i] = dp_o[i-1] + dp_o[i - 2]

n = int(input())

num = []

for i in range(n):
    m = int(input())
    num.append(m)

for i in num:
    print(dp_z[i], dp_o[i])

해당 문제는 실버3레벨에 해당하므로 어렵지 않게 풀 수 있는 문제였습니다.

DP 알고리즘을 처음 접하기에 적합한 문제라고 생각합니다.

알고리즘도 모든 것과 마찬가지로 꾸준한 연습과 이해를 바탕으로 실력이 향상합니다.
Just do it & Keep steady

댓글남기기