๋ชฉ์ฐจ
DP
DP๋ ํ๋ฒ ํด๊ฒฐํ ๋ฌธ์ ๋ ๋ค์ ๊ณ์ฐํ์ง ์๋๋ก ํ๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํ์ํ ๋๋ง๋ค ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ค์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ๊ฒ์ด ์๋ฃ๊ตฌ์กฐ์์์ ๋ค์ด๋๋ฏน์ ์๋ฏธ!
ํผ๋ณด๋์น ์์ด
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ๋ํ์ ์ธ ๋ฌธ์
์ ํ์์ ์ฌ๊ทํจ์ํํ๋ก ๊ตฌํ ๊ฐ๋ฅ
์ ๋๊ฐ์ ํญ์ ๋ํ์ฌ ๊ทธ ๋ค์ ํญ์ ๋ง๋ ๋ค.
f(3)์ ํธ์ถํ ๋ f(2)์ f(1)์ ํธ์ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ํด์ ๊ตฌํ ์ ์๋ค.
def fibo(x):
if x==1 or x ==2:
return 1
return fibo(x-1) + fibo(x-2)
print(fibo(4))
# ์ฌ๊ทํจ์๋ฅผ ๋ง๋ค ๋ํด๋ ๋ฌดํ ๋ฐ๋ณตํ์ง ์๋๋ก ์ข
๋ฃ์กฐ๊ฑด์ ์ ์ด์ค์ผํ๋ค!
# x ๊ฐ 1 ๋๋ 2์ผ ๋๊ฐ ์ข
๋ฃ ์กฐ๊ฑด์ด๋ค.
์ ํ์ ๋ถ๋ถ์ด ์ฌ๊ท์, a1๊ณผ a2์ด ์ข ๋ฃ์กฐ๊ฑด์ด ๋๋ค.
f(6)์ ํธ์ถํ์ ๋ฟ์ธ๋ฐ f(2)๊ฐ 5๋ฒ ํธ์ถ๋๊ณ ์๋ค. -> ์ํ ์๊ฐ ๋นํจ์จ
๋ฐ๋ผ์ ํ๋ฒ ํด๊ฒฐํ f(2)์ ๋ํด์ ์ด ๋ฌธ์ ์ ๋ต์ ์ด๊ฑฐ๋ผ๊ณ ์๋ ค์ค ์ ์๋๋ก ํด์ผ ํ๋ค
.
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ (ํํฅ์)
๋ฐฐ์ด ์ด๋ฆ์ cache, table ,dp, d๋ผ๊ณ ์ค์ ํ๊ณค ํ๋ค.
์ํฅ์์ ๋ฐ๋ณต๋ฌธ์ ํด๊ฒฐํ๋ค.
dp๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ ์ค ํํฅ์์ผ๋ก ์ ๊ทผํ ๋ ๋ฉ๋ชจ์ด์ ์ด์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค.
ํผ๋ณด๋์น ์์ด ํ๋ค์ด ๋ฉ๋ชจ์ด์ ์ด์ ๋ฐฉ์ ๊ตฌํ
#ํ๋ฒ ๊ณ์ฐ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์
ํ๊ธฐ ์ํ ๋ฆฌ์คํธ ์ด๊ธฐํ
d = [0] * 100
# ํผ๋ณด๋์น ํจ์๋ฅผ ์ฌ๊ทํจ์๋ก ๊ตฌํ (ํ๋ค์ด ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ)
def fibo(x):
# ์ข
๋ฃ ์กฐ๊ฑด (1 ๋๋ 2์ผ ๋ 1 ๋ฐํ)
if x==1 or x==2:
return 1
# ์ด๋ฏธ ๊ณ์ฐํ์ ์๋ ๋ฌธ์ ๋ฉด ๊ทธ๋๋ก ๋ฐํ
if d[x] != 0:
return d[x]
# ์์ง ๊ณ์ฐํ์ง ์์ ๋ฌธ์ ๋ผ๋ฉด ์ ํ์์ ๋ฐ๋ผ ํผ๋ณด๋์น ๊ฒฐ๊ณผ ๋ฐํ
d[x] = fibo(x-1) + fibo(x-2)
return d[x]
print(fibo(99))
ํผ๋ณด๋์น ์์ด ๋ฐํ ์ ๋ฐฉ์ ๊ตฌํ
# ์์ ๊ณ์ฐ๋ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ dp ํ
์ด๋ธ ์ด๊ธฐํ
d = [0] * 100
# ์ฒซ๋ฒ์งธ, ๋๋ฒ์งธ ํผ๋ณด๋์น ์๋ 1
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])
์ง์ ์๊ฐ๋งํผ ๊ฑธ๋ฆฌ๋ ํผ๋ณด๋์น ์์ด ๋ฌธ์ ์ ์๊ฐ ๋ณต์ก๋๋ฅผ O(N) ๋งํผ ์ค์ผ ์ ์๋ค.
ํผ๋ฒ์ 5๋ก ์ค์ ํ ํต ์ ๋ ฌ์ ์ํํ๋ฉด 5๋ณด๋ค ์์ ์์์ 5๋ณด๋ค ํฐ ์์๋ก ๋ถ๋ฆฌ๋๋ค.
์ด๋ ๊ฒ ํ๋ฒ ๋ถํ ์ด ์ด๋ฃจ์ด์ง ์ดํ 5์ ๋ํด์๋ ์ด์ ์ฒ๋ฆฌ๋์ง ์๋๋ค. ๋ค๋ฅธ ๋ถ๋ถ ๋ฌธ์ ์ ํฌํจ๋์ง ์๋๋ค.
- ์์ ๋ฌธ์ ๋ฅผ ํตํด ํฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ
- ๋ถ๋ถ ๋ฌธ์ ๊ฐ ์ค๋ณต
-> ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์ ๊ทผ
1๏ธโฃ์ค์ ๋ฌธ์ 1 : 1๋ก ๋ง๋ค๊ธฐ
์ฐ์ฐ์ ์ต์๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
๋จ์ํ 5๋ก ๋๋๊ธฐ, 3์ผ๋ก ๋๋๊ธฐ, 1์ ๋นผ์ฃผ๋ ์ฐ์ฐ์ ๋ฐ๋ณตํ๋ ๊ฒ์ด ์๋๋ผ ์ ๋ ฅ๋ ๊ฐ์ ๋ฐ๋ผ์ ์ ๋ ฅ๊ฐ์ 1๋ก ๋ง๋๋ ์ฐ์ฐ์ ์ต์๊ฐ์ ๊ตฌํด์ผํ๋ ๋ฌธ์ ์๋ค.
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ ์ด์ฉํด์
์ ๋ ฅ๊ฐ์ด 1์ผ ๋๋ถํฐ
์ด๊ธฐ ์ฝ๋๋ค.. ์ด๋ค ๋ฐฉ์์ผ๋ก ํ์ด์ผํ ์ง ๊ฐ์ด ์ ์กํ์ง ์์๋ค.
n = int(input().split())
count =0
def fibo(x):
while(True):
if x==1:
return count
elif x % 5 ==0:
count +=1
x = x//5
elif x % 3==0:
count +=1
x = x//3
else:
count +=1
x -=1
fibo(n)
์ต์ข ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
๋ง์ฝ 2๋ก ๋๋์ด ๋จ์ด์ง๋ ๊ฒฝ์ฐ 1์ ๋บ ๊ฒฝ์ฐ์ ์ฐ์ฐ ํ์๊ฐ ์ ์ฅ๋ d[i]์ d[i//2] + 1์ ๋น๊ตํ์ฌ ๋ ์์ ๋ฐฉ๋ฒ์ ์ ํํ๋ค๋ ์์ด๋์ด์ด๋ค.
# 1์ ๋บ ๊ฒฝ์ฐ ์ฐ์ฐ ํ์
d[i] = d[i-1] +1
# 2๋ก ๋๋์ด ๋จ์ด์ง๋ ๊ฒฝ์ฐ
if i%2 ==0:
d[i] = min(d[i],d[i//2]+1)
์ ์ฒด ์ฝ๋
x = int(input())
d = [0] * 30001
for i in range(2,x+1):
d[i] = d[i-1] +1
if i%2 ==0:
d[i] = min(d[i],d[i//2]+1)
if i%3==0:
d[i] = min(d[i],d[i//3]+1)
if i%5==0:
d[i] = min(d[i],d[i//5]+1)
print(d[x])
2๏ธโฃ์ค์ ๋ฌธ์ 2 :๊ฐ๋ฏธ ์ ์ฌ ๋ฌธ์ ํ์ด ๊ณผ์
๐๐
์์ง ๋ฌธ์ ํ์ด๋ฅผ ์ด๋ป๊ฒ ํด์ผํ ์ง ๋ฐ๋ก ๋ ์ค๋ฅด์ง ์๋๋ค. ํ์ด๋ฅผ ๋ณด๊ณ dp ๋ฌธ์ ์ ์ต์ํด์ง์!
n = int(input())
array = list(map(int,input().split()))
d =[0] * 100
d[0] = array[0]
d[1] = max(array[0],array[1])
for i in range(2,n):
d[i] = max(d[i-1], d[i-2] + array[i])
print(d[n-1])
๐ซฑ๊ฒฝ์ฐ์ ์
i-2 i-1 ํ์ฌ
ใ ใ ใ ใ
1 ) i-2๋ฒ์งธ ์๋์ ํด๋ค๋ฉด : ํ์ฌ ์๋์ ํธ ์ ์๋ค.
2) i-1๋ฒ์งธ ์๋์ ํด๋ค๋ฉด : ํ์ฌ ์๋์ ํธ ์ ์๋ค.
์ฆ i-2๋ฒ์งธ ์๋ + ํ์ฌ ์๋ VS i-1 ๋ฒ์งธ ์๋ ์ค ๋ ๋ง์ ์๋์ ํธ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์ ํํ๋ฉด ๋๋ค.
๐ซฑ๊ตฌํ ์์
d๋ ๋ ๋ง์ ์๋์ ํธ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์ ์ฅ๋ dp ํ ์ด๋ธ์ด๋ค.
์ธ๋ฑ์ค์ ๋ฐ๋ผ์ ์ฐจ๋ก๋๋ก ํ์ฌ ์ธ๋ฑ์ค๊น์ง ์ค ๊ฐ์ฅ ์๋์ ๋ง์ด ํธ ์ ์๋ ๋ฐฉ๋ฒ์ด ์ ํ๋๋ค.
for i in range(2,n):
d[i] = max(d[i-1], d[i-2] + array[i])
3๏ธโฃ์ค์ ๋ฌธ์ 3 : ๋ฐ๋ฅ ๊ณต์ฌ
* ํ์ผ๋ง ๋ฌธ์
๊ตฌํ๊ณ ์ ํ๋ ๊ฒ : ๊ฐ๋ก * ์ธ๋ก = N * 2 ์ธ ๋ฐ๋ฅ์ ์ฑ์ฐ๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์
์ถ๋ ฅ : ๋ฐ๋ฅ์ ์ฑ์ฐ๋ ๋ฐฉ๋ฒ์ 796796์ผ๋ก ๋๋ ๋๋จธ์ง
n = int(input())
d = [0] * 1001
d[1]= 1
d[2]=3
for i in range(3,n+1):
d[i] = (d[i-1] + d[i-2] *2) % 796796
print(d[n])
๊ทผ๋ฐ ์ฝ๋๊ฐ ์ดํด๊ฐ ์๋๋ค.
d[1] ์ 1๊ฐ์ง ๊ฒฝ์ฐ
d[2] ์ 3๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์๋ค.
d[3] ์ d[2] + d[1] * 2 = 5๊ฐ์ง ๊ฒฝ์ฐ์ ์๋ฅผ ๊ฐ์ง๋ค.
d[4] ๋ d[3] + d[2] * 2 =11๊ฐ์ง ์ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ฐ์ง๋ค.
์ดํด๊ฐ ์๊ฐ๋ ๋ถ๋ถ์ 2์นธ์ด ๋จ์์ ๋ ๊ฐ๋ก * ์ธ๋ก = 1*2 ์ธ ํ์ผ 2๊ฐ๋ก๋ ๊ตฌ์ฑํ ์ ์๋๋ฐ ์ ์ด๊ฑด ๊ณ ๋ คํ์ง ์์๊น? ์ถ์๋๋ฐ ์ด๊ฑด 1์นธ์ด ๋จ์ ๊ฒฝ์ฐ์์ ๊ณ ๋ ค๋๋ ๊ฒ์ด์๋ค. ๊ตฌ์ฑ๋๋ ํ์ผ ํํ๊ฐ ๋์ผํ๋ฏ๋ก ์ฌ๊ธฐ์ ๊ณ ๋ ค๋๋ ๊ฒ์ด์๋ค! ๐ค
4๏ธโฃ์ค์ ๋ฌธ์ 4 : ํจ์จ์ ์ธ ํํ ๊ตฌ์ฑ ๋ฌธ์ ํ์ด๋ณด๊ธฐ
์ผ์..... dp ๋ฌธ์ ๋ ์ด๋ป๊ฒ ํ์ด์ผํ ์ง ํผ์์๋ ์์ง ๊ฐ์ด ์์กํ๋ค. ๋ฌธ์ ํ์ด๋ฅผ ๋จ๊ณ๋ณ๋ก ์ ๋ฆฌํด๋ณด์!!!
์๋ฅผ ๋ค์ด N = 3์ด๊ณ K= 7์ด๋ผ๊ณ ์๊ฐํด๋ณด์ ! ์ฌ๊ธฐ์ K๋ ํํ์ ๋จ์๋ฅผ ์๋ฏธํ๋ค.
๊ฐ ํํ์ ๋จ์๋ 2, 3, 5์ด๋ค.
๐ซฑ ๊ฒฝ์ฐ์ ์
๊ธ์ก i๋ฅผ ๋ง๋ค ์ ์๋ ํํ ๊ฐ์ ai, ํํ ๋จ์ k๋ผ๊ณ ํ ๋
a i-k๋ ๊ธ์ก i-k๋ฅผ ๋ง๋ค ์ ์๋ ์ต์ํ์ ํํ ๊ฐ์
ai-k ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ด ์กด์ฌํ ๊ฒฝ์ฐ : a i = min(ai, ai-k + 1)
- ai-k๋ a[i]์ ๊ธ์ก k๋ฅผ ํ๋ ๋ํ๋ฉด ๋ง๋ค ์ ์๋ค.
์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ : ai = 10,001
๐ซฑ์ด๊ธฐ ๋ฆฌ์คํธ ์ค์ ํ๊ธฐ
๊ฐ ์ธ๋ฑ์ค๋ฅผ 10,001๋ก ์ค์ ํ๋ค.
์ฐ๋ฆฌ ๋ฌธ์ ์์ ๊ธ์ก์ ์ต๋๊ฐ์ 10,000์ด๋ค. ๋ฐ๋ผ์ 10,001์ ๋ถ๊ฐ๋ฅํ ๊ธ์ก์ด๋ค. ์ฆ, ํน์ ๊ธ์ก์ ๋ง๋ค ์ ์๋ ํํ ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ์ง ์๋ค๋ ์๋ฏธ์ด๋ค.
0์์ ๊ฒฝ์ฐ, ํํ๋ฅผ ํ๋๋ ์ฌ์ฉํ์ง ์์์ ๋ ๋ง๋ค ์ ์์ผ๋ฏ๋ก 0์ธ๋ฑ์ค ๊ฐ์ผ๋ก 0์ ์ค์ ํ๋ค.
๐ซฑํํ ๋จ์ ํ์ธํ๊ธฐ
ํ์ฌ ์ฐ์ฐ์์ ๊ฐ์ฅ ์ต์์ ๊ฐ์ผ๋ก ๋ง๋๋ ์ฐ์ฐ์ ์ ํํ๋ฉด ๋๋ค.
๋ฐ๋ผ์ ๊ฐ์ฅ ์ต์๋ก ๋ง๋๋ ์ฐ์ฐ์ ์ ํํ๊ณ ์ด๋ฅผ ๋ฐ๋ณตํด์ ์ํํ๋ฉด ๋๋ค.
๊ฐ์ฅ ๋จผ์ ์ฒซ ๋ฒ์งธ ํํ๋จ์์ธ 2๋ถํฐ ํ์ธํด๋ณด์.
2๋ก ๋ง๋ค ์ ์๋ ์๋ถํฐ dp ํ ์ด๋ธ์ ๊ฐฑ์ ํ๊ธฐ
์ธ๋ฑ์ค 2์ ๊ฒฝ์ฐ 1์ด๋ผ๋ ๊ฐ์ ๊ฐ์ง๋๋ฐ ์ด๋ 2์ ์ง๋ฆฌ ํํ ํ๋๋ฅผ ์ด์ฉํ์ฌ 2์์ ๋ง๋ค ์ ์๋ค๋ ์๋ฏธ์ด๋ค.
์ธ๋ฑ์ค 4์ ๊ฒฝ์ฐ 2๋ผ๋ ๊ฐ์ ๊ฐ์ง๋๋ฐ ์ด๋ 2์ ์ง๋ฆฌ ํํ 2๊ฐ๋ฅผ ์ด์ฉํ์ฌ 2+2 = 4์์ ๋ง๋ค ์ ์๋ค๋ ์๋ฏธ์ด๋ค.
๋ช ์ธ๋ฑ์ค๋ 10,001 ๊ฐ์ ๊ฐ์ง๋๋ฐ, ์ด๋ 2์์ผ๋ก ๊ตฌ์ฑํ ์ ์๋ ๊ธ์ก์ด๊ธฐ ๋๋ฌธ์ด๋ค.
A2 = A0 + 1
A4 = A2 + 1
์ด์ ํํ ๋จ์ 3์ ํ์ธํด๋ณด์
2์ 3์ผ๋ก ๋ง๋ค ์ ์๋ ์๋ถํฐ dp ํ ์ด๋ธ์ ๊ฐฑ์ ํ๊ธฐ
A5 = A2 + 1
์ธ๋ฑ์ค 5๋ 2๋ผ๋ ๊ฐ์ ๊ฐ์ง๋๋ฐ ์ด๋ 2์์ง๋ฆฌ ํํ 1๊ฐ, 3์์ง๋ฆฌ ํํ 1๊ฐ๋ก 2 + 3 = 5์์ ๋ง๋ค ์ ์๋ค๋ ์๋ฏธ์ด๋ค.
์ด์ ํํ ๋จ์ 5์ ํ์ธํด๋ณด์
2, 3, 5๋ก ๋ง๋ค ์ ์๋ ์๋ถํฐ dp ํ ์ด๋ธ์ ๊ฐฑ์ ํ๊ธฐ
A 7 = A2 + 1๋ก 2๋ผ๋ ๊ฐ์ ๊ฐ์ง๋ค. 2์์ง๋ฆฌ ํํ ํ๋๋ 5์์ง๋ฆฌ ํํ 1๊ฐ๋ก 2 + 5 = 7์์ ๋ง๋ค ์ ์๋ค๋ ์๋ฏธ์ด๋ค.
์๋ ์ด์ ๋จ๊ณ์์ A7์ ๊ฐ์ 3์ด์๋๋ค, ์ด๋ 2 + 2 + 3 = 7์์ผ๋ก 3๊ฐ์ ํํ๋ฅผ ์ฌ์ฉํ์ ๋๋ฅผ ๋ํ๋ธ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ 2 + 5 = 7์์ ๋ง๋ค๋ฉด ํํ๋ฅผ 2๊ฐ๋ง ์ฌ์ฉํด๋ ๋๋ฏ๋ก ๊ฐฑ์ ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก 7์์ ๋ง๋ค๊ธฐ ์ํ ์ต์์ ํํ ๊ฐ์๋ 2๊ฐ์ด๋ค.
# ์
๋ ฅ๋ฐ๊ธฐ
n,m = int(input().split)
n_list=[]
for _ in range(n):
n_list.append(int(input().split()))
# ํ๋ฒ ๊ณ์ฐ๋ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ DP ํ
์ด๋ธ ์ด๊ธฐํ
d = [100001] * (m+1)
# dp ๊ตฌํ
d[0]= 0
for i in range(n):
for j in range(n_list[i] , m + 1):
if d[j - n_list[i]] != 10001:
d[j] = min( d[j], d[ j - n_list[i] ] +1)
if d[m] == 10001:
print(-1)
else:
print(d[m])
์ด ๋ก์ง์ ๋ค์ ์ดํดํด๋ณด์ ! ! !
์์์ ์์๋ณธ ๊ฒ์ฒ๋ผ ํํ ๋จ์ ๋ณ๋ก dp ํ ์ด๋ธ๊ฐฑ์
for i in range(n):
for j in range(n_list[i] , m + 1):
if d[j - n_list[i]] != 10001:
d[j] = min( d[j], d[ j - n_list[i] ] +1)
์ฌ๊ธฐ์ d[j - n_list[i]] ์ n_list[i]๋ฅผ ๋ํ๋ฉด ์ํ๋ ๊ธ์ก์ด ๋๋ค
๋ฐ๋ผ์ d[j]์ ์ด์ ๊ธ์ก์ ๊ธ์ก์ ๋ํด์ ์ป์ ์ ์ค ์์ ๊ฒ์ ํํ๋ฉด ๋๋ค.
๋ฐฑ์ค์ 1,2,3 ๋ง๋ค๊ธฐ ๋ฌธ์ ํ์ด๋ณด๊ธฐ
https://www.acmicpc.net/problem/9095
test = int(input())
def sum_func(x):
if x==1:
return 1
elif x==2:
return 2
elif x==3:
return 4
else:
return sum_func(x-1) + sum_func(x-2) + sum_func(x-3)
for _ in range(0,test):
n = int(input())
print(sum_func(n))
๊ท์น์ ์ฐพ์๋ด๋ ๊ฒ์ด ์ค์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์ง ์ ์๊ฐํด๋ณด์.
๊ท์น์ ๋ชจ๋ฅผ ๋์๋ ํ๋ฒ n = 1์ผ ๋ 2์ผ ๋๋ฅผ ์๊ฐํด๋ณด๋ฉฐ ๋์ดํด๋ณด์
n=4์ธ ๊ฒฝ์ฐ
1, 2, 3์ ๋ํด์ ๋ํ๋ด๋ ค๋ฉด ๊ฒฝ์ฐ๋ ์๋ 3๊ฐ์ง ์ผ์ด์ค๋ก ๋๋๋ค.
1 + 3
1์ 3์ ๋ํ๋ ๊ฒฝ์ฐ์ ์๋ 3์ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ์ ์์ ๋์ผํ๋ค
์ฌ๊ธฐ์๋ 1 + 1+ 1 , 1 + 2, 2 + 1 , 3 ์ผ๋ก 4๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์๋ค.
2 + 2
2์ 2์ ๋ํ๋ ๊ฒฝ์ฐ์ ์๋ 2์ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ์ ์์ ๋์ผํ๋ค
์ฌ๊ธฐ์๋ 1 + 1, 2 ๋ก 2๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์๋ค.
3 + 1
3์ 1์ ๋ํ๋ ๊ฒฝ์ฐ์ ์๋ 1์ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ์ ์์ ๋์ผํ๋ค
์ฌ๊ธฐ์๋ 1๋ก 1๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์๋ค.
์ด๋ ๊ฒ ์์ฑํด๋ณด๋ ๊ฐ ๊ฒฝ์ฐ๋ง๋ค ๊ท์น์ ์ ์ ์์๋ค.
4๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ์ ์๋ 3์ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ์ ์ + 2๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ์ ์ + 1์ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ์ ์ ๋ก ํํ๋์๋ค.
5๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ์ ์๋ 4๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ์ ์ + 3์ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ์ ์ + 2๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ์ ์๋ก ํํ๋์๋ค.
๋ฐ๋ผ์ x๋ผ๋ ํฉ์ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ์ ์๋ ์๋์ ๊ฐ์ด ํํํ ์ ์๋ค.
sum_func(x-1) + sum_func(x-2) + sum_func(x-3)
'์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ ๊ธฐ๋ก' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ตฌํ ๋ฌธ์ (0) | 2024.09.29 |
---|---|
[์ด์ฝํ / python ]: ์ด์ง ํ์ ์๊ณ ๋ฆฌ์ฆ ๋ด์ฉ ์ ๋ฆฌ & ๋ฌธ์ ํ์ด ๊ณผ์ ๊ธฐ๋ก (0) | 2024.05.26 |
์ด์ฝํ ํ์ด์ฌ : ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ (0) | 2024.05.05 |
[DFS/BFS : python] ์ด์ฝํ ๋ด์ฉ ์ ๋ฆฌ ๋ฐ ๋ฌธ์ ํ์ด ๊ธฐ๋ก (1) | 2024.04.06 |
[๊ตฌํ: python]๊ฐ๋ ๊ณผ ๋ฌธ์ ํ์ด ์ ๋ฆฌํ๊ธฐ (1) | 2024.03.28 |