2020. 9. 7. 19:13ใ์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค/๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ด๋ ๋ฌด์์ผ๊น?
๋๋ ๋ค์ด๋๋ฏน ๊ด๋ จ ๋ฌธ์ ๋ฅผ ๊ณ์ํด์ ํ๊ณ ์์ง๋ง, ์ฒ์๋ถํฐ ํ์ง๋ชปํ๊ณ ๊ณ์ ๋ต์ง๋ฅผ ๋ณด๊ณ ํ๊ณ ์๋ค.
์ด๊ฒ ๊ณผ์ฐ ์ค๋ ฅ์ด ๋๊ธด ํ๋๊ฑธ๊น? ๋ฐ๋ฅ๊ณต์ฌ ๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ ๋์ ํ ์ดํด๊ฐ ๊ฐ์ง ์์ ๋ธ๋ก๊ทธ์ ์ฒ์ ๊ฐ๋ ๋ถํฐ ๋ค์ ์ ๋ฆฌํด ๋ณด๋ ค๊ณ ํ๋ค.
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ ๋ณดํต ์ฐ์ฐ์๋๋ฅผ ๋น ๋ฅด๊ฒํ๊ฑฐ๋ ๋ฉ๋ชจ๋ฆฌ๊ณต๊ฐ์ ์ต๋ํ์ผ๋ก ํ์ฉํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
ํํ ์ด๋ฅผ '์ ํ์'์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
๋ํ์ ์ธ ์์๋ 'ํผ๋ณด๋์น ์์ด'์ด๋ค.
ํผ๋ณด๋์น ์์ด์ n๋ฒ์งธ ์ซ์๋ฅผ ์๊ณ ์ถ์ดํ ๋ n๋ฒ์งธ ์ซ์๋ n-1๋ฒ์งธ ์ซ์์ n-2๋ฒ์งธ ์ซ์๋ฅผ ๋ํ ๊ฐ์ด๋๊ณ ์ด๋ฌํ ๊ท์น์ ๋ฐ๋ฅด๋ ์์ด์ด๋ค.
๋ค์์ ํผ๋ณด๋์น ์์ด์ ์ฌ๊ท์ ์ธ ์์ค์ฝ๋์ด๋ค.
def fibo(n) :
if n ==1 or n==2:
return 1
else :
return fibo(n-1)+fibo(n-2)
print(fibo(4))
ํ์ง๋ง ์ฌ๊ทํจ์๋ ์๊ฐ๋ณต์ก๋๋ก 2^n์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ n์ด ์กฐ๊ธ๋ง ์ปค์ ธ๋ ์ํ์๋๊ฐ ๊ธ๊ฒฉํ๊ฒ ์ฆ๊ฐํ๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ ์ฌ์ฉํจ์ผ๋ก์จ ํด๊ฒฐํ ์ ์๋ค.
์ฐ์ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ ์ฐ๊ธฐ์ํด์ ๋๊ฐ์ง ์ํฉ์ด ํ์ํ๋ค.
1.ํฐ ๊ฒ์ ์์ ๊ฒ์ผ๋ก ๋๋ ์ ์์ด์ผ ํ๋ค.
2. ์์ ๋ฌธ์ ์์ ๊ตฌํ ์ ๋ต์ ๊ทธ๊ฒ์ ํฌํจํ๋ ํฐ ๋ฌธ์ ์์๋ ๋์ผํ๋ค.
์ด ํผ๋ณด๋์น ๋ฌธ์ ๋ฅผ '๋ฉ๋ชจ๋ฆฌ ์ ์ด์ '์ ํตํด์ ํ์ด๋ณด์.
'๋ฉ๋ชจ๋ฆฌ ์ ์ด์ ' : ํ๋ฒ ๊ตฌํ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํด๋๊ณ ๋ค์ ๊ทธ๊ฐ์ ํธ์ถํ๋ค๋ฉด ๋ฉ๋ชจํ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋๋ก ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฒ
์ด๋ฅผ '์บ์ฑ'์ด๋ผ๊ณ ๋ ์นญํ๋ค.
๋ค์ ์ฝ๋๋ ์บ์ฑ์ ์ด์ฉํ ์ฌ๊ทํจ์์ด๋ค.
d = [0]*100
def fibo(x):
if x==1 or x==2:
return 1 #์ข
๋ฃ์กฐ๊ฑด : 1ํน์ 2์ผ ๋ 1๋ฐํ
if d[x]!=0 :
return d[x] #๊ณ์ฐํ์ ์ด ์๋ค๋ฉด ๋ฐ๋ก ๋ฐํ
d[x] = fibo(x-1) + fibo(x-2) #๊ณ์ฐํ์ ์ด ์๋ค๋ฉด fibo์ฌ๊ท์ด์ฉ
return d[x]
print(fibo(4))
์ด๋ฌํ ํฐ ๋ฌธ์ ๋ฅผ ์์ ๋ฌธ์ ๋ก ๋๋๋ ๊ธฐ๋ฒ์ 'ํต ์ ๋ ฌ'๋ ์๋ค.
ํ์ง๋ง ํต ์ ๋ ฌ์ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ๊ณผ ๋ค๋ฅด๊ฒ ํ๋ฒ ์ฒ๋ฆฌํ ๊ฐ์ ๋ค์ ์ฒ๋ฆฌํ์ง ์๋๋ค. ๋ฐ๋ฉด์ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ ํ๋ฒ ์ฒ๋ฆฌํ๋ ๊ฒ์ ์บ์ฑํด์ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ ์ด ์ฐจ์ด์ ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
์์ ๋ฐฉ๋ฒ์ 'ํ๋ค์ด ๋ฐฉ์'์ด๋ค. ํฐ ๋ฌธ์ ํด๊ฒฐ์ ์ํด ์์ ๋ฌธ์ ๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ต์ ๋์ถํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ฉด์ ์์ ๋ฌธ์ ๋ถํฐ ํฐ ๋ฌธ์ ๋ก ํฅํ๋ ๋ฐฉ์์ '๋ณดํ ์ ๋ฐฉ์'์ด๋ผ๊ณ ํ๋ค.
๋ณดํ ์ ๋ฐฉ์์ ์ด์ฉํ ์์ค ์ฝ๋
d = [0]*100
d[1] = 1
d[2] = 1
n=99
for i in range(3, n+1):
d[i] = d[i-1]+d[i-2]
print(d[n])
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์์ ์ ํ์ ์ธ๋ฐฉ์์ ๋ณดํฐ์ ๋ฐฉ์์ด๋ค.
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ ธํ์ฐ
- ํน์ ํ ๋ฌธ์ ๋ฅผ ์์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ ๊ทผํ์ ๋ ์๊ฐ์ด ๋งค์ฐ ์ค๋ ๊ฑธ๋ฆฐ๋ค๋ฉด ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ํด๊ฒฐ ๊ฐ๋ฅํ์ง ํ์ธ
-์ฌ๋งํ๋ฉด ๋ณดํ ์ ๋ฐฉ์์ผ๋ก
'์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค > ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค - ๊ฐ๋ฏธ์ ์ฌ (0) | 2020.09.09 |
---|