๐ ๋ฐฑ์ค 9625 - BABBA
๐ก ๋์ ํ์ด
์ ํ์ ์ธ DP(Dynamic Programming)
๋ฌธ์ ์์ผ๋, ์ฒ์์ ๋ฌธ์ ๊ทธ๋๋ก i
๊ฐ ์ฆ๊ฐํ๋ฉด ๋ฐ๋๋ ๋ฌธ์์ด์ ์๋ก์ด ๋ฐฐ์ด์ ๋ฃ๊ณ ๋ง์ง๋ง์ ์ด ๋ช ๊ฐ์ธ์ง count
๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ค๊ฐ ์๊ฐ ์ด๊ณผ ํ์ ์ ๋ฐ์๋ค.
๊ทธ๋์ ์ด๋ค ๊ท์น์ด ์๋์ง ์ดํด๋ณด๋๊น ์ ์ฒด A, B
์ด ๊ฐ์๋ฅผ ๊ตฌํ ํ์๋ ์๊ณ A
, B
์ ๊ฐ์๋ฅผ ๋ฐ๋ก๋ฐ๋ก ๊ตฌํ๋ฉด ๋๋ค. a[i] = a[i-1] + a[i-2]
์ธ ์ ํ์ ์ธ ํผ๋ณด๋์น(Fibonacci) ์์ด
ํํ๋ฅผ ๋ณด์๋ค.
๋๋ DP
๋ฅผ ์ฌ์ฉํ ๋ ์ ์ฒด k
์ ์ต๋๊ฐ๋ฅผ ์ ์ธํ๋๋ฐ, ๊ทธ๋ด ํ์ ์์ด k+1
๋งํผ๋ง ์ค์ ๊ทธ๋๊ทธ๋ ๊ณ์ฐํด๋ ๋๋ค. ๋, ์๋กญ๊ฒ ๋ฐฐ์ด ์ ์ a[0] = 1, a[1] = 0
๋์ , ์ฒ์๋ถํฐ a=[1,0]
์ ์ ์ธํ๊ณ DP ๋ฐ๋ณต๋ฌธ
์์ ๋์จ๊ฐ์ append
ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด๋ ๋๋ค.
# ๋์ ์ฝ๋
k = int(input())
n = 46
a = [0] * 46
a[0] = 1
a[1] = 0
b = [0] * 46
b[0] = 0
b[1] = 1
for i in range(2, n):
a[i] = a[i - 1] + a[i - 2]
b[i] = b[i - 1] + b[i - 2]
print(a[k], b[k])
# ๋ค๋ฅธ์ฌ๋์ ์ฝ๋
k = int(input())
a = [1, 0]
b = [0, 1]
for i in range(2, k+1):
a_num = a[i-1] + a[i-2]
a.append(a_num)
b_num = b[i-1] + b[i-2]
b.append(b_num)
print(a[k], b[k])
'Algorithm > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 1018 - ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ (2) | 2021.05.24 |
---|---|
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 1436 - ์ํ๊ฐ๋ ์ (0) | 2021.05.22 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 4396 - ์ง๋ขฐ (2) | 2021.05.20 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 1110 - ๋ํ๊ธฐ ์ฌ์ดํด (0) | 2021.05.18 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 7568 - ๋ฉ์น (0) | 2021.05.18 |
๋๊ธ