๋ฐฑ์ค€ 10826: ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 4 (DP)

2021. 5. 31. 14:52ใ†๐Ÿ’ป ๊ฐœ๋ฐœ/Algorithm

 

10826๋ฒˆ: ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 4

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

www.acmicpc.net

์ผ๋ฐ˜์ ์ธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด๋ฌธ์ œ. 

์•„๋ž˜์ฒ˜๋Ÿผ ์žฌ๊ท€๋กœ ํ’€์—ˆ๋”๋‹ˆ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค. 

n = int(input())

def fibo(x):
  if x==0:
    return 0
  elif x==1:
    return 1
  else:
    return fibo(x-1) + fibo(x-2)

print("%d" % fibo(n))

์žฌ๊ท€๋กœ ํ’€๋ฉด ์ •์ˆ˜ x๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์—ฐ์‚ฐ์‹œ๊ฐ„์ด ๊ทธ๋งŒํผ ๋Š˜์–ด๋‚˜๋ฏ€๋กœ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค

๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ’€์ดํ•˜๊ณ , ์ฒ˜์Œ์— 0๊ณผ 1์„ ๊ฐ๊ฐ x, y์— ๋„ฃ๋Š”๋‹ค๋ฉด 

1์€ ๋‹ค์‹œ x๊ฐ€ ๋˜๊ณ , 0+1์ด y์— ํ• ๋‹น๋œ๋‹ค. ์ด๋ฅผ n๋ฒ”์œ„๊นŒ์ง€ ๋ฐ˜๋ณตํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

 

์ •๋‹ต ์ฝ”๋“œ
n = int(input())
x, y = 0, 1 
for i in range(n):
  x, y = y, x+y
print(x)