ν°μ€ν 리 λ·°
λ¬Έμ
λ¬Έμ νμ΄
μ«μκ° μ£Όμ΄ μ§ λ, +, - λ₯Ό ν΅ν΄ μ«μλ₯Ό κ³μ° ν μ μμΌλ©° κ³μ°λ μ«μμ λ²μλ 0 λ³΄λ€ ν¬κ³ , 20 λ³΄λ€ μμμΌ νλ€. λν μ£Όμ΄μ§ μ«μλ₯Ό κ³μ°ν λ, λ§μ§λ§μΌλ‘ μ£Όμ΄μ§ μ«μμ μΌμΉν΄μΌ νλ€. μμ μ λ ₯1μ κ²½μ° λ¬Έμ μ μ£Όμ΄μ§ ννΈμ κ°μ΄ λ€μκ³Ό κ°μ κ²½μ°μ μκ° μλ€.
- 8+3-2-4+8-7-2-4-0+8=8
- 8+3-2-4+8-7-2-4+0+8=8
- 8+3+2+4-8-7+2-4-0+8=8
- 8+3+2+4-8-7+2-4+0+8=8
- 8+3+2-4+8-7+2+4-0-8=8
- 8+3+2-4+8-7+2+4+0-8=8
- 8-3+2+4-8+7+2+4-0-8=8
- 8-3+2+4-8+7+2+4+0-8=8
- 8-3+2-4+8+7+2-4-0-8=8
- 8-3+2-4+8+7+2-4+0-8=8
μ΄ κ²½μ°μ μλ DFSλ₯Ό ν΅ν΄ ꡬν μλ μμ§λ§, 2μ°¨μ λ°°μ΄μ μ΄μ©νμ¬ DPλ‘ νμλ μλ€. μ΄μ κ°μ λ¬Έμ λ μ΄μ μ λ€λ£¬
κΈ°ν리μ€νΈμ μ μ¬ν λ°©μμΌλ‘ νλ©΄ λλ€. λ€λ§ λ€λ₯Έ μ μ΄ μλ€λ©΄ μμ μ λ ₯ 1μ κ²½μ° 8μ΄λΌλ κ°μ΄ λμ€λ νμλ₯Ό μΆλ ₯ν΄μΌ νλ€. λ°λΌμ λͺ¨λ μ«μλ₯Ό μ¬μ©νμ¬ κ³μ°νμμ λ, 8μ΄ λλ κ²½μ°κ° λͺ κ°μΈμ§ μ€μ²©νλ©΄μ 체ν¬ν΄μΌ νλ€.
'''
7
8 3 2 4 8 7 2
[0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0]
[0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0]
[0, 0, 1, 0, 1, 0, 1, 0, 2, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 0, 1]
'''
μλ₯Ό λ€μ΄ μμ κ°μ ν μ€νΈ μΌμ΄μ€λ₯Ό μ€ννλ€λ©΄, 2μ°¨μ λ°°μ΄μ λνλΌ μ μλ μ«μλ€μ΄ νμλ κ²μ΄κ³ , 2κ° λλ κ²½μ°μ μλ 1κ°λΌλ κ²μ μ μ μλ€. λ§μ½ 8, 10, 12κ° λλ€λ©΄ 2κ°μ§μ κ²½μ°μ μ κ° μλ€λ κ²μ μ μ μλ€. μ΄μ κ°μ΄ νΈλ¦¬μ κ°μ κ΅¬μ‘°λ‘ νμμ΄ λλ€λ©΄ DFSλ₯Ό ν΅ν΄ νμ§ μκ³ 2μ°¨μ λ°°μ΄μ μ¬μ©νμ¬ μ λ΅μ μ°Ύμ μ μλ€.
μ½λ
from sys import stdin
if __name__ == "__main__":
n = int(stdin.readline())
nums = list(map(int, stdin.readline().split()))
dp = [[0] * 21 for _ in range(n - 1)]
dp[0][nums[0]] = 1
for i in range(1, n - 1):
cur_num = nums[i]
for j in range(21):
if not dp[i - 1][j]:
continue
if j + cur_num <= 20:
dp[i][j + cur_num] += dp[i - 1][j]
if 0 <= j - cur_num:
dp[i][j - cur_num] += dp[i - 1][j]
print(dp[-1][nums[-1]])
'π¨βπ» μ½λ©ν μ€νΈ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ°±μ€: 10942 ν°λ¦°λ둬? (0) | 2020.08.30 |
---|---|
λ°±μ€: 15486 ν΄μ¬ 2 (0) | 2020.08.29 |
λ°±μ€: 12865 νλ²ν λ°°λ (0) | 2020.08.28 |
λ°±μ€: 1495 κΈ°ν리μ€νΈ (0) | 2020.08.27 |
λ°±μ€: 11058 ν¬λ¦¬λ³΄λ (0) | 2020.08.26 |