백준 문제 풀이
백준 12996 파이썬 python : Acka @@황소처럼 우직하게@@ dp의 진리이다..
hjp845
2020. 4. 24. 04:12
반응형
총 방법의 수를 구하는 문제
dp의 정수이지..
s, a, b, c = map(int, input().split())
dp = [[[[-1 for _ in range(51)] for _ in range(51)] for _ in range(51)] for _ in range(51)]
def go(n, a, b, c):
if n == 0:
if a == 0 and b == 0 and c == 0:
return 1
else:
return 0
if a < 0 or b < 0 or c < 0:
return 0
if dp[n][a][b][c] != -1:
return dp[n][a][b][c]
dp[n][a][b][c] = 0
for i in range(2):
for j in range(2):
for k in range(2):
if i + j + k == 0:
continue
dp[n][a][b][c] += go(n - 1, a - i, b - j, c - k)
dp[n][a][b][c] %= 1000000007
return dp[n][a][b][c]
print(go(s, a, b, c))
멋지지 않은가..
if dp[n][a][b][c] != -1:
return dp[n][a][b][c]
취하고싶다..
반응형