์ญ ๊ฐ๋ฅํ ํ์ผ์ ๋์ดํด๋ณด๋ฉด ๊ท์น์ ์ฐพ์ ์ ์๋ค
n=1 (1) : 1
n=2 (2) : 00 11
n=3 (3) : 001 100 111
n=4 (5) : 0000 0011 1001 1100 1111
n=5 (8) : 00001 00100 00111 10000 10011 11001 11100 11111
…
f(n) = f(n-1) + f(n-2) ๋ผ๋ ๊ฒ์ ์ ์ ์๋ค
(1) ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
1. ๋ฐฐ์ด array์ ๋ฏธ๋ฆฌ 0, 1, 2, 0, 0, 0, … ์ ๋ฃ์ด๋๋ค
2. for๋ฌธ์ ํตํด array[3]๋ถํฐ ์ฑ์๋๊ฐ๋ค array[n] = ( array[n-1] + array[n-2] ) % 15746
3. n๋ฒ์งธ๊น์ง ์ฑ์ด ํ array[n]์ ์ถ๋ ฅ
# 1904-1.py
n = int(input())
array = [0, 1, 2] + [0] * n
for i in range(3, n+1):
array[i] = (array[i-1] + array[i-2]) % 15746
print(array[n])
(2) ๋ณ์๋ง ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
1. ๋ณ์ a, b ์ ๊ฐ๊ฐ 1, 2๋ฅผ ์ ์ฅํ๋ค
2. a์๋ b๋ฅผ, b์๋ a + b % 15746์ ์ ์ฅํ๋ค
3. n-1๋ฒ ๋ฐ๋ณตํ ํ a๋ฅผ ์ถ๋ ฅํ๋ค ( ๋ฏธ๋ฆฌ 1, 2 ๋ฅผ ์ ์ฅํด ๋์๊ธฐ ๋๋ฌธ์ n๋ฒ์ด ์๋ n-1๋ฒ ๋ฐ๋ณต )
# 1904-2.py
n = int(input())
a, b = 1, 2
for _ in range(n-1):
a, b = b, (a + b) % 15746
print(a)
์๋ถํฐ (1) (2) ๋ฒ ์ฝ๋
(2)๋ฒ ์ฝ๋๊ฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ๊ฒ ๋๋๊ฑด ๋น์ฐํ๋ฐ
์๋๋ ์ ๋น ๋ฅธ๊ฑธ๊น..? ์๋ฌธ