From 5d81c15a86fc262985c0beb8e898127e8d34689a Mon Sep 17 00:00:00 2001 From: yenru0 Date: Thu, 13 Aug 2020 01:49:19 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=AC=EB=B0=8C=EB=8A=94=20=EA=B3=84?= =?UTF-8?q?=EB=8B=A8=EC=88=98=EB=93=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zeta_python/12865.py | 7 ------- zeta_python/1562.py | 31 ------------------------------- zeta_python/completed/12865.py | 18 ++++++++++++++++++ zeta_python/completed/1562.py | 17 +++++++++++++++++ zeta_python/completed/18244.py | 23 +++++++++++++++++++++++ 5 files changed, 58 insertions(+), 38 deletions(-) delete mode 100644 zeta_python/12865.py delete mode 100644 zeta_python/1562.py create mode 100644 zeta_python/completed/12865.py create mode 100644 zeta_python/completed/1562.py create mode 100644 zeta_python/completed/18244.py diff --git a/zeta_python/12865.py b/zeta_python/12865.py deleted file mode 100644 index caad286..0000000 --- a/zeta_python/12865.py +++ /dev/null @@ -1,7 +0,0 @@ -N, K = map(int, input().split()) -Ws = [tuple(map(int, input().split())) for i in range(N)] # weight, value - -DP = [[0] * N] * K - -print(DP) - diff --git a/zeta_python/1562.py b/zeta_python/1562.py deleted file mode 100644 index d20396c..0000000 --- a/zeta_python/1562.py +++ /dev/null @@ -1,31 +0,0 @@ -N = int(input()) -#3차원 -temper = [0 for i in range(N)] -count = 0 - -def C(t): - T = [0 for i in range(10)] - for i in t: - T[i] = True - if all(T) is True: - return True - else: - return False - -def I(l, k): - global count - if 0 <= k <= 9: - temper[l - 1] = k - if l == 1: - if C(temper): - count += 1 - count %= 1000000000 - else: - I(l - 1, k - 1) - I(l - 1, k + 1) - else: - return - -for i in range(1,10): - I(N, i) -print(count % 1000000000) \ No newline at end of file diff --git a/zeta_python/completed/12865.py b/zeta_python/completed/12865.py new file mode 100644 index 0000000..3c72b16 --- /dev/null +++ b/zeta_python/completed/12865.py @@ -0,0 +1,18 @@ +N, K = map(int, input().split()) +Ws = [tuple(map(int, input().split())) for i in range(N)] # weight, value + +D = [[0] * (K + 1) for _ in range(N + 1)] + + +def solve(k): + global D + for n in range(1, N + 1): + for k in range(1, K + 1): + if Ws[n - 1][0] <= k: + D[n][k] = max(Ws[n - 1][1] + D[n - 1][k - Ws[n - 1][0]], D[n - 1][k]) + else: + D[n][k] = D[n - 1][k] + return D[N][K] + + +print(solve(K)) diff --git a/zeta_python/completed/1562.py b/zeta_python/completed/1562.py new file mode 100644 index 0000000..5af03b9 --- /dev/null +++ b/zeta_python/completed/1562.py @@ -0,0 +1,17 @@ +N = int(input()) + +D = [[0] * (1 << 10) for _ in range(10)] + +for i in range(1, 10): + D[i][1 << i] = 1 + +for i in range(0, N - 1): + Dn = [[0] * (1 << 10) for _ in range(10)] + for n in range(10): + for m in range(1024): + if n < 9: + Dn[n][m | (1 << n)] += D[n + 1][m] % 1000000000 + if n > 0: + Dn[n][m | (1 << n)] += D[n - 1][m] % 1000000000 + D = Dn +print(sum([D[i][1023] for i in range(10)]) % 1000000000) diff --git a/zeta_python/completed/18244.py b/zeta_python/completed/18244.py new file mode 100644 index 0000000..556e7dd --- /dev/null +++ b/zeta_python/completed/18244.py @@ -0,0 +1,23 @@ +N = int(input()) + +Mem = [[[-1] * 5 for _ in range(0, 10)] for _ in range(N)] + + +def I(l, k, b): + if b > 2 or b < -2: + return 0 + if l == 0: + return 1 + if Mem[l - 1][k][b] != -1: + return Mem[l - 1][k][b] + + re = 0 + if 0 < k: + re += I(l - 1, k - 1, b - 1 if b < 0 else -1) % 1000000007 + if k < 9: + re += I(l - 1, k + 1, b + 1 if b > 0 else 1) % 1000000007 + Mem[l - 1][k][b] = re + return re + + +print(sum(I(N - 1, i, 0) for i in range(0, 10)) % 1000000007)