์ƒˆ์†Œ์‹

๐Ÿงฎ ์•Œ๊ณ ๋ฆฌ์ฆ˜/-- ๋ฐฑ์ค€ (BOJ) - Python

๋ฐฑ์ค€ (boj) ํŒŒ์ด์ฌ - 2748 ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 2

  • -

๋ฌธ์ œ ๋งํฌ : https://www.acmicpc.net/problem/2748

 

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

๋ฌธ์ œ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 0๊ณผ 1๋กœ ์‹œ์ž‘ํ•œ๋‹ค. 0๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 0์ด๊ณ , 1๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 1์ด๋‹ค. ๊ทธ ๋‹ค์Œ 2๋ฒˆ์งธ ๋ถ€ํ„ฐ๋Š” ๋ฐ”๋กœ ์•ž ๋‘ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์˜ ํ•ฉ์ด ๋œ๋‹ค. ์ด๋ฅผ ์‹์œผ๋กœ ์จ๋ณด๋ฉด Fn = Fn-1 + Fn-2 (n>=2)๊ฐ€ ๋œ๋‹ค. n=17์ผ๋•Œ ๊นŒ์ง€ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋ฅผ ์จ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, n๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋ฅผ

www.acmicpc.net

 

 

 

ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋ฅผ, ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ๋ฐฉ๋ฒ• (๋ฐ˜๋ณต๋ฌธ)์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ผ๋Š” ๋ฌธ์ œ์˜€๋‹ค. ์ˆซ์ž ๋ฒ”์œ„๊ฐ€ ๊ฝค ์ปธ๋Š”๋ฐ, ์‹ค์ œ๋กœ ํ•ด๋ณด๋‹ˆ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

์žฌ๊ท€ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ํ•˜๊ฒŒ๋˜๋ฉด ์—ฐ์†์ ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋ฉด์„œ stack overflow๋ฅผ ์œ ๋ฐœํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. (return ํ•˜๊ธฐ ์ „์—๋Š” ๊ณ„์†ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ์— ์ถ•์ ๋˜๊ธฐ ๋•Œ๋ฌธ์—)

 

 

*ํŒŒ์ด์ฌ ์ฝ”๋“œ
n = int(input())

arr = [0,1,1]
if n < 3 : answer = arr[n] 
else:
    while(True):
        arr.append(sum(arr[-2:]))

        if len(arr)>n : 
            answer = arr[n]
            break

print(answer)
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.