BOJ/백준-2748-python

cosmos·2021년 2월 24일
3
post-thumbnail

문제📖

풀이🙏

  • 첫째 줄에 n이 주어진다. n은 90보다 작거나 같은 자연수이다.
  • 첫째 줄에 n번째 피보나치 수를 출력하라.
  • 시간 제한 1초, 메모리 제한 128MB이다.
    -> n이 89까지 커지기 때문에 시간을 많이 잡아먹는 재귀 코드로는 1초안에 통과가 힘들다.
    -> 시간 복잡도 big-O의 핵심은 반복이 얼마나 적게드느냐이다.
    -> 재귀가 아닌 for 반복문으로 구현한다.

코드💻

# boj, 2748 : 피보나치 수 2, python3
import sys

n = int(sys.stdin.readline())

def fibonacci(num):
    num1, num2 = 0, 1
    
    if num <= 1:
        return num
    else:
        for i in range(1, num):
            result = num1 + num2
            num1, num2 = num2, num1 + num2
        return result
    
print(fibonacci(n))

결과😎

출처 && 깃허브📝

https://www.acmicpc.net/problem/2748
github

0개의 댓글