피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.
예를 들어 A = [1, 4, 2] , B = [5, 4, 4] 라면
와 같이 이어집니다.
2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요.
n | return |
---|---|
3 | 2 |
5 | 5 |
def fibonacci(n):
idx = 2
result = [0, 1]
while idx < n + 1:
num = result[idx-2]+result[idx-1]
result.append(num)
idx += 1
return result[-1] % 1234567
while idx < n + 1
로 세팅해줍니다.def fibonacci(num):
a,b = 0,1
for i in range(num):
a,b = b,a+b
return a
다중대입문(multiple assingment)을 활용한 파이써닉하고 간단한 풀이입니다. a, b 를 b, a+b로 n번째까지 계속 대입시켜줘서 풀어내는 방식입니다.
이전 문제에서 다중 대입문을 본 적이 있었는데, 막상 적용하려니 생각이 나지 않았네요. 역시 단순히 아는것에 그치지않고 응용시점에서 그것을 기억해내는것이 효율적 알고리즘 풀이를 위해선 매우매우 중요하네요. 😫