[๋ฐฑ์ค 9625๋ฒ] [๐ฅ5] BABBA (python)
๋ฌธ์
์๊ทผ์ด๋ ๊ธธ์ ๊ฑท๋ค๊ฐ ์ ๊ธฐํ ๊ธฐ๊ณ๋ฅผ ๋ฐ๊ฒฌํ๋ค. ๊ธฐ๊ณ๋ ๋งค์ฐ ๋งค์ฐ ํฐ ํ๋ฉด๊ณผ ๋ฒํผ ํ๋๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
๊ธฐ๊ณ๋ฅผ ๋ฐ๊ฒฌํ์ ๋, ํ๋ฉด์๋ A๋ง ํ์๋์ด์ ธ ์์๋ค. ๋ฒํผ์ ๋๋ฅด๋ ๊ธ์๊ฐ B๋ก ๋ณํ๋ค. ํ ๋ฒ ๋ ๋๋ฅด๋ BA๋ก ๋ฐ๋๊ณ , ๊ทธ ๋ค์์๋ BAB, ๊ทธ๋ฆฌ๊ณ BABBA๋ก ๋ฐ๋์๋ค. ์๊ทผ์ด๋ ํ๋ฉด์ ๋ชจ๋ B๋ BA๋ก ๋ฐ๋๊ณ , A๋ B๋ก ๋ฐ๋๋ค๋ ์ฌ์ค์ ์๊ฒ๋์๋ค.
๋ฒํผ์ K๋ฒ ๋๋ ์ ๋, ํ๋ฉด์ A์ B์ ๊ฐ์๋ ๋ช ๊ฐ๊ฐ ๋ ๊น?
์ ๋ ฅ
์ฒซ์งธ ์ค์ K (1 โค K โค 45)๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ A์ ๊ฐ์์ B์ ๊ฐ์๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
1
์์ ์ถ๋ ฅ 1
0 1
์์ ์ ๋ ฅ 2
4
์์ ์ถ๋ ฅ 2
2 3
์์ ์ ๋ ฅ 3
10
์์ ์ถ๋ ฅ 3
34 55
ํ์ด
๋ฌธ์ ์์ ์๊ตฌํ๋ ๊ฒ์ A์ ๊ฐ์์ B์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๊ฒ์ผ๋ก ๋ฌธ์์ด์ด K๋ฒ์งธ์์ AB๋ก ๋ฐ๋๊ธฐ ์ํด์๋ K-1๋ฒ์งธ๊น์ง A์ ๊ฐ์์ B์ ๊ฐ์๊ฐ ๋ชจ๋ ๊ฐ์์ผํ๋ค. ๊ทธ๋ฆฌ๊ณ K๋ฒ์งธ์์ ๋ฐ๋๋ ๊ฒ์ A์ ๊ฐ์์ B์ ๊ฐ์๊ฐ ์๋ก ๋ฐ๋๋ ๊ฒ์ด๋ค. ์ฆ, K๋ฒ์งธ์์ A์ ๊ฐ์์ B์ ๊ฐ์๊ฐ ์๋ก ๋ฐ๋๋ค๋ฉด, K-1๋ฒ์งธ๊น์ง A์ B์ ๊ฐ์๋ ์๋ก ๊ฐ์์ผํ๋ค.
๋ฐ๋ผ์ K=1์ผ๋ A์ ๊ฐ์์ B์ ๊ฐ์๋ ๊ฐ๊ฐ 1๊ณผ 0์ด๋ค.
K=2์ผ๋ A์ ๊ฐ์์ B์ ๊ฐ์๋ ๊ฐ๊ฐ 0๊ณผ 1์ด๋ค.
K=3์ผ๋ A์ ๊ฐ์์ B์ ๊ฐ์๋ ๊ฐ๊ฐ 1๊ณผ 1์ด๋ค.
K=4์ผ๋ A์ ๊ฐ์์ B์ ๊ฐ์๋ ๊ฐ๊ฐ 1๊ณผ 2์ด๋ค.
K=5์ผ๋ A์ ๊ฐ์์ B์ ๊ฐ์๋ ๊ฐ๊ฐ 2์ 3์ด๋ค.
๋ฐ๋ผ์ ์ ๋ ฅ๋ฐ์ K๋ฒ์งธ์์ A์ ๊ฐ์์ B์ ๊ฐ์๋ฅผ ์ฐจ๋ก๋๋ก ์ถ๋ ฅํ๋ฉด ๋๋ค.
์ฝ๋
ver(1)
# n์ ์
๋ ฅ ๋ฐ์
n = int(input())
# a ๋ฆฌ์คํธ๋ฅผ n+1 ํฌ๊ธฐ๋ก ์์ฑํ๊ณ , 0์ผ๋ก ์ด๊ธฐํ
a = [0]*(n+1)
# a[1]์ 1๋ก ์ด๊ธฐํ
a[1] = 1
# a[i]๋ฅผ i-1๋ฒ์งธ์ i-2๋ฒ์งธ์ ํฉ์ผ๋ก ๊ณ์ฐ
for i in range(2,n+1):
a[i] = a[i-1] + a[i-2]
# a[n-1]๊ณผ a[n]์ ์ถ๋ ฅ
print(a[n-1],a[n])
ver(2)
n = int(input()) # ์
๋ ฅ๊ฐ n์ ๋ฐ์์ด
a = [0]*(n+1) # a ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๊ณ 0์ผ๋ก ์ด๊ธฐํ
a[1] = 1 # a[1]์ ๊ฐ์ 1๋ก ์ค์
for i in range(2,n+1): # i๊ฐ 2๋ถํฐ n๊น์ง ๋ฐ๋ณต
a[i] = a[i-1] + a[i-2] # a[i]๋ฅผ a[i-1] + a[i-2]์ ํฉ์ผ๋ก ๊ฐฑ์
print(a[n-1],a[n]) # a[n-1]๊ณผ a[n] ์ถ๋ ฅ
๋๊ธ๋จ๊ธฐ๊ธฐ