백준
[백준] 5557 1학년 [Python, 파이썬]
YoonJuHan
2023. 10. 24. 20:56
- 문제 : https://www.acmicpc.net/problem/5557
- 🔑 DP
- dp 배열에 경우의 수를 저장
n = int(input())
num = list(map(int, input().split()))
dp = [[0] * 21 for _ in range(n)]
dp[0][num[0]] = 1
for i in range(1, n-1):
for j in range(0, 21):
if dp[i-1][j]:
if j + num[i] <= 20:
dp[i][j+num[i]] += dp[i-1][j]
if j - num[i] >= 0:
dp[i][j-num[i]] += dp[i-1][j]
print(dp[n-2][num[-1]])