λ°±μ€ 9461 νμ΄μ¬ - νλλ° μμ΄ - λμ κ³νλ²
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κ³Ό ν¬κ² λ€λ₯΄μ§ μμ΅λλ€. λ¨, μ΄κΈ°κ°μ μ€μ΄κ³ κ³μ°μ μμνλ λ²μλ₯Ό μλΉκ²Όμ λΏμ λλ€.