https://www.acmicpc.net/problem/9461
ํผ๋ณด๋์น์ ๋น์ทํ๊ฒ ๊ท์น์ด ์๋ ํ๋๋ฐ ์์ด์ N๋ฒ์งธ ๊ฐ์ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์ ๋๋ค. ์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด... ์ ์ผ๊ฐํ์ ๋ณ์ ๋ฐ๋ผ ๊ณ์ ๋๋ ค๊ฐ๋๋ฐ... ์ ์ผ๊ฐํ์ ๋ณ์ ๊ธธ์ด๊ฐ ์์ด์ ๊ฐ์ผ๋ก ๋ค์ด๊ฐ๋ค.
1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12, 16...
๊ฐ์ฅ ํต์ฌ์ ํ๋๋ฐ ์์ด์ ๊ท์น์ ์ฐพ๋ ๊ฒ์ด์์ต๋๋ค.
์์ ๊ท์น์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์์ต๋๋ค. ๊ทผ๋ฐ ์กฐ๊ฑด์ผ๋ก n์ด 8๋ณด๋ค ํฌ๋ค๊ณ ์ ์ ์ด์ ๋ ์ค์ ๋ก ์ฌ์ฉํ๋ ์ผ๊ฐํ์ ๊ธฐ์ค์ผ๋ก ํ ๊ฒ์ด๊ณ ... n์ด 5๋ณด๋ค ํฌ๋ค๋ ์กฐ๊ฑด์ ํด๋น ์์ด์ ์ฒซ 3 ์ซ์๊ฐ ๋ชจ๋ 1์ด๊ธฐ ๋๋ฌธ์ 8์์ 3์ ๋บ ์ ์ ๋๋ค.
Python ํ์ด 1
n > 8์ผ๋ก ๊ฐ์ ํ ํ์ด ์ ๋๋ค.
import sys
read = sys.stdin.readline
cache = [0, 1, 1, 1, 2, 2, 3, 4, 5] + [0 for _ in range(100)]
for i in range(9, 101):
cache[i] = cache[i-1] + cache[i-5]
for _ in range(int(read())):
print(cache[int(read())])
- ๋ฏธ๋ฆฌ ์ด๊ธฐ๊ฐ์ 8๋ฒ์งธ ์์๊น์ง ์ง์ ํด์ฃผ๊ณ ์ต๋ 100๊น์ง ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ ์๊ฒ ๋ฏธ๋ฆฌ ๋ฆฌ์คํธ๋ฅผ 0์ผ๋ก ์ฑ์์คฌ์ต๋๋ค.
Python ํ์ด 2
n > 5์ผ๋ก ๊ฐ์ ํ ํ์ด ์ ๋๋ค.
import sys
read = sys.stdin.readline
cache = [0, 1, 1, 1, 2, 2] + [0 for _ in range(100)]
for i in range(6, 101):
cache[i] = cache[i-1] + cache[i-5]
for _ in range(int(read())):
print(cache[int(read())])
ํ์ด 1๊ณผ ํฌ๊ฒ ๋ค๋ฅด์ง ์์ต๋๋ค. ๋จ, ์ด๊ธฐ๊ฐ์ ์ค์ด๊ณ ๊ณ์ฐ์ ์์ํ๋ ๋ฒ์๋ฅผ ์๋น๊ฒผ์ ๋ฟ์ ๋๋ค.
๋๊ธ