๐Ÿงฉ Algorithm/[BOJ] Bronze

BOJ 2748๋ฒˆ : ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 2 (Python/Bronze 1)

devCloud 2023. 9. 25. 19:04
728x90
 

2748๋ฒˆ: ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 2

ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 0๊ณผ 1๋กœ ์‹œ์ž‘ํ•œ๋‹ค. 0๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 0์ด๊ณ , 1๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 1์ด๋‹ค. ๊ทธ ๋‹ค์Œ 2๋ฒˆ์งธ ๋ถ€ํ„ฐ๋Š” ๋ฐ”๋กœ ์•ž ๋‘ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์˜ ํ•ฉ์ด ๋œ๋‹ค. ์ด๋ฅผ ์‹์œผ๋กœ ์จ๋ณด๋ฉด Fn = Fn-1 + Fn-2 (n ≥ 2)๊ฐ€

www.acmicpc.net


์„ค๋ช…

n๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

ํ’€์ด

ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” DP ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๊ณ  ๋” ํšจ์œจ์ ์ด๋‹ค.

 

Solution

๋ฐฉ์‹ 1. Bottom-up(ํ•˜ํ–ฅ์‹)

import sys
input = sys.stdin.readline

n = int(input())
dp = [0]*(n + 1)
dp[1] = 1

#bottom-up
def fibo(n):
    for i in range(2, n + 1):
        dp[i] = dp[i - 1] + dp[i - 2]
    return dp[n]
    
print(fibo(n))

๋ฐฉ์‹ 2. Top-down(์ƒํ–ฅ์‹)

import sys
input = sys.stdin.readline

n = int(input())
dp = [0] * (n+1)  

#Top-Down
def fibo(n):
    if n == 1 or n == 2:
        return 1
    if dp[n] == 0:
        dp[n] = fibo(n - 1) + fibo(n - 2)
    return dp[n]
    
print(fibo(n))

 

728x90