• TOC {:toc}

이 글은 백준 온라인 저지의 10870번 문제를 파이썬(Python)으로 풀이한 것을 모아놓은 글입니다.

일종의 연습 기록이며 제가 정답을 받은 코드와 참고할만한 다른 코드를 같이 기록합니다. 필요한 경우 코드에 대한 해설을 기록합니다만 코드는 통과했어도 해설은 틀릴 수 있기 때문에 가볍게 참고해주시길 부탁드립니다. 피드백은 편하신 방법으로 자유롭게 주시면 감사하겠습니다.

2021.04.12

메모리 시간 코드 길이
28776 KB 80 ms 101 B
n = int(input())
# 피보나치 수열을 담는 리스트를 생성한다.
F = [0, 1]

# 2부터 주어진 수 n까지
for i in range(2, n + 1):
    # 이 전 두 수를 더한 결과를 리스트에 추가한다.
    F.append(F[i - 1] + F[i - 2])

# F[n]을 출력한다.
print(F[n])

아이디어 & 풀이

피보나치 수열을 담는 리스트를 생성해 주어진 수까지 이전 두 수를 더한 결과를 추가해간다.

  • 처음 두 수 0, 1은 초기화할 때 추가한다.
  • 0이 F_0이기 때문에 n번째 수의 인덱스도 n-1이 아닌 n이라는 것을 주의하자.

참고 답안

def Fib(n):
    if n < 2: return n
    return Fib(n - 1) + Fib(n - 2)

print(Fib(int(input())))

아이디어 & 풀이

재귀 함수를 사용해 피보나치 수열을 구현한다.