백준 -1003 피보나치
백준 -1003 피보나치
나의 코드)
import sys
def fibonacci(n):
global count_zero
global count_one
if n == 0:
count_zero += 1
elif n == 1:
count_one += 1
else:
fibonacci(n-1)
fibonacci(n-2)
count_zero = 0
count_one = 0
test_case = int(sys.stdin.readline())
for i in range(test_case):
element = int(sys.stdin.readline().strip())
fibonacci(element)
print(count_zero, count_one)
count_zero, count_one = 0,0
comment) ㅋㅋㅋㅋㅋ 이 정도 생각은 다한다... 라고 느꼈다. 일단 문제를 다가갈 때 생각을 하고 다가가야 될 것 같다. 시간제한 0.25초 일단 재귀는 쓰지마라는 뜻인데 나는 멍청하게 들어갔다. 그리고 그냥 게속 제출하고 틀리는데 서든 킬뎃마냥 내 프로필이 보기 좋지 않다.... 하 머리박고 죽고싶지만... 그래도 일단 일반인 정도 하는구나 느꼈다. 물론 코딩하는 일반인 말고 그냥 진짜 민간인 ㅋㅋㅋㅋ
이번 문제로 느낀것은 저런 형식의 문제는 결과를 한번 도출해보고 재귀를 준데로 쓰는 것이아닌 수학적 규칙을 찾아내는 것이 가장 좋을 듯하다.
정답 코드)
t = int(input())
for i in range(t):
cnt_0 = [1,0]
cnt_1 = [0,1]
n= int(input())
if n > 1:
for j in range(n-1):
cnt_0.append(cnt_1[-1])
cnt_1.append(cnt_1[-2]+cnt_1[-1])
print(cnt_0[n],cnt_1[n])
Author And Source
이 문제에 관하여(백준 -1003 피보나치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jg31109/백준-1003-피보나치저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)