1003: 피보나치 함수 - Python

beaver.zip·2024년 12월 14일
1

[알고리즘] 백준

목록 보기
44/45

문제

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

풀이 1 (내 풀이)

import sys
input = sys.stdin.readline

for _ in range(int(input())):
    cnt0 = [1, 0]
    cnt1 = [0, 1]

    N = int(input())
    for i in range(2, N+1):
        cnt0.append(cnt0[i-2] + cnt0[i-1])
        cnt1.append(cnt1[i-2] + cnt1[i-1])
    print(cnt0[N], cnt1[N])
  • 언뜻 복잡해 보이지만,
    각 피보나치 수 fibonacci(i)에서 출력되는 0의 개수, 1의 개수를 저장하는 두 개의 리스트가 필요하다는 것을 깨달으면 쉽게 구현할 수 있다.
  • 변수명 좀 잘 지을걸..

풀이 2 (char_lie님 풀이)

for _ in range(int(input()):
    a, b = 1, 0
    for i in range(int(input())):
        a, b = b, a+b 
    print(a, b)
index: 0 1 2 3 4 5 ...

cnt_0: 1 0 1 1 2 3 ...
cnt_1: 0 1 1 2 3 5 ...

쿨하고 섹시하다,, 왜 저 간단한 규칙이 내 눈엔 안보였을까?


오늘의 교훈

  • 규칙을 잘 찾자.
  • 변수명을 잘 짓자.

참고 자료

[백준 1003] 피보나치 함수 (python)

profile
NLP 일짱이 되겠다.

1개의 댓글

comment-user-thumbnail
2024년 12월 16일

ℬℴ𝓃𝒶𝒸𝒸𝒾 한서

답글 달기