피보나치 함수 [ Python ] [ 백준 : 1003 ]
2023. 5. 30. 18:43ㆍ알고리즘/백준
풀이 및 회고
처음은 보여지는 코드 그대로 파이썬으로 옮겨서 적었고 제출했다.
그러나 바로 시간초과 오류가 발생하였고 코드를 줄여야만 했는데 피보나치 수열을 모르는 나로써는 이는 너무 어려운일이었다.
30~40 분 동안 피보나치 수열이 무엇인지 찾아보고 줄일 수 있는 방법을 찾아보는데 실패했다.
매니저님의 수학관련 문제는 너무 시간을 많이 쏟지 말라고 들었다.
수학 공식을 모르면 풀 수 없기 때문에 답을 보고 학습을 하는 것을 추천하셨다.
우리는 답을 보았고 본 다음 이해하려하며 문제를 보고 적는 것이 아닌 이해한 바탕으로 문제를 적고 풀었다.
약간 오픈북느낌이라 조금 찝찝하긴 하다. 공부가 더 필요하다
# 피보나치 함수
# before==================================
# zeroCount = 0
# oneCount = 0
# def fibonacci(n):
# global zeroCount
# global oneCount
# if n == 0:
# zeroCount += 1
# return zeroCount
# elif n == 1:
# oneCount += 1
# return oneCount
# else:
# return fibonacci(n - 1) + fibonacci(n - 2)
# m = int(input())
# for i in range(m):
# n = int(input())
# fibonacci(n)
# print(zeroCount, oneCount)
# zeroCount, oneCount = 0, 0
#__________ မင်္ဂလာပါ______밍그라바_______
# 0의 갯수 = 이전 1의 갯수, 1의 갯수 = 이전 0+이전1 갯수
t = int(input())
for _ in range(t):
zeroCount = [1, 0, 1]
oneCount = [0, 1, 1]
n = int(input())
for j in range(3, n + 1):
oneCount.append(oneCount[j-1] + oneCount[j-2])
zeroCount.append(zeroCount[j-1] + zeroCount[j-2])
print(zeroCount[n], oneCount[n])
# 0 1 0
# 1 0 1
# 2 1 1
# 3 1 2
# 4 2 3
# 5 3 4
# 6 5 7
# 7 8 13
# 8 13 20
# 9 21 33
'알고리즘 > 백준' 카테고리의 다른 글
파도반 수열 [ Python ] [ 백준 : 9461 ] (0) | 2023.05.30 |
---|---|
최대공약수와 최소공배수 [ Python ] [ 백준 : 2609 ] (0) | 2023.05.30 |
K 번째 수 [ Python ] [ 백준 : 1300 ] (0) | 2023.05.30 |
암기왕 [ Python ] [ 백준 : 2776 ] (1) | 2023.05.29 |
분해합 [ Python ] [ 백준 : 2231 ] (0) | 2023.05.29 |