본문 바로가기
프로그래밍 공부/파이썬 알고리즘 공부

(백준 파이썬) 1003번. 피보나치 함수

by 세상만사 네상만사 2022. 1. 22.
반응형

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

 

1003번: 피보나치 함수

각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.

www.acmicpc.net

 

피보나치 함수에서 0과 1이 몇번 나오는지 구현하는 함수다.

어떻게 풀지 몰라서 일단 0과 1이 몇번 나오는지 초반에 그려봤는데, 

0은 [1,0,1,1,2,3,5,8...] 번 나오고 (1,0으로 시작하는 피보나치 수열)

1은 [0,1,1,2,3,5,8...] 번 나오는 것을 확인하였다. (0,1로 시작하는 피보나치 수열)

 

이를 구현하면 다음과 같다. 

 

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

n = int(input())

for i in range(n):
    zeros = [1,0]
    ones = [0,1]
    k = int(input())
    if k >= 2:
        for i in range(2,k+1):
            zeros.append(zeros[i-1]+zeros[i-2])
            ones.append(ones[i -1] + ones[i-2])
    print(zeros[k],ones[k])


반응형

댓글