From e2c11c89ab318ae02d9f7de8e2b4107a607cf667 Mon Sep 17 00:00:00 2001 From: YoonYn9915 Date: Sat, 12 Apr 2025 23:41:05 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[BOJ]=20=EC=89=AC=EC=9A=B4=20=EA=B3=84?= =?UTF-8?q?=EB=8B=A8=20=EC=88=98=20/=20=EC=8B=A4=EB=B2=84=201=20/=20100?= =?UTF-8?q?=EB=B6=84=20=ED=9E=8C=ED=8A=B8=20=EC=82=AC=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://www.acmicpc.net/problem/10844 --- ... \352\263\204\353\213\250 \354\210\230.py" | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 "YoonYn9915/dp/2025-04-10-[\353\260\261\354\244\200]-#10844-\354\211\254\354\232\264 \352\263\204\353\213\250 \354\210\230.py" diff --git "a/YoonYn9915/dp/2025-04-10-[\353\260\261\354\244\200]-#10844-\354\211\254\354\232\264 \352\263\204\353\213\250 \354\210\230.py" "b/YoonYn9915/dp/2025-04-10-[\353\260\261\354\244\200]-#10844-\354\211\254\354\232\264 \352\263\204\353\213\250 \354\210\230.py" new file mode 100644 index 00000000..1bf915a5 --- /dev/null +++ "b/YoonYn9915/dp/2025-04-10-[\353\260\261\354\244\200]-#10844-\354\211\254\354\232\264 \352\263\204\353\213\250 \354\210\230.py" @@ -0,0 +1,19 @@ + +N = int(input()) + +dp = [[0] * 10 for _ in range(N + 1)] + +for i in range(1, 10): + dp[1][i] = 1 + +for i in range(2, N + 1): + for j in range(10): + if j == 0: + dp[i][j] = dp[i - 1][1] + elif 1 <= j <= 8: + dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j + 1] + else: + dp[i][j] = dp[i - 1][8] + + +print(sum(dp[N]) % 1000000000) From 3c2a3b5bf829ef45df7cbc1c46f3b1a4e9542dae Mon Sep 17 00:00:00 2001 From: YoonYn9915 Date: Sat, 12 Apr 2025 23:42:48 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[BOJ]=20=EC=A2=85=EC=9D=B4=EC=9D=98=20?= =?UTF-8?q?=EA=B0=9C=EC=88=98=20/=20=EC=8B=A4=EB=B2=84=202=20/=2055?= =?UTF-8?q?=EB=B6=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://www.acmicpc.net/problem/1780 --- ...4\354\235\230 \352\260\234\354\210\230.py" | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 "YoonYn9915/recursion/2025-04-10-[\353\260\261\354\244\200]-#1780-\354\242\205\354\235\264\354\235\230 \352\260\234\354\210\230.py" diff --git "a/YoonYn9915/recursion/2025-04-10-[\353\260\261\354\244\200]-#1780-\354\242\205\354\235\264\354\235\230 \352\260\234\354\210\230.py" "b/YoonYn9915/recursion/2025-04-10-[\353\260\261\354\244\200]-#1780-\354\242\205\354\235\264\354\235\230 \352\260\234\354\210\230.py" new file mode 100644 index 00000000..333d4759 --- /dev/null +++ "b/YoonYn9915/recursion/2025-04-10-[\353\260\261\354\244\200]-#1780-\354\242\205\354\235\264\354\235\230 \352\260\234\354\210\230.py" @@ -0,0 +1,45 @@ + +import sys + +def recursion(paper, row_start, col_start, step): + # 종이가 같은지 검사 + result = check_paper_same(paper, row_start, col_start, step) + + # 같지 않다면 9분할한뒤 각각을 재귀적으로 검사 + if result == 2: + for i in range(3): + for j in range(3): + row = row_start + (i * step // 3) + col = col_start + (j * step // 3) + recursion(paper, row, col, step // 3) + else: + # 종이의 칸이 다 같은 경우 + answer[result] += 1 + + + +def check_paper_same(paper, row_start, col_start, step): + base = paper[row_start][col_start] + for i in range(row_start, row_start + step): + for j in range(col_start, col_start + step): + if paper[i][j] != base: + return 2 + return base + + +inp = sys.stdin.readline + +n = int(inp()) + +paper = [] + +# 각각 -1, 0, 1로만 이루어진 종이의 개수 저장 튜플 +global answer +answer = {-1: 0, 0: 0, 1: 0} + +for i in range(n): + paper.append(list(map(int, inp().split()))) + +recursion(paper, 0, 0, n) + +print('\n'.join(str(value) for value in answer.values())) From 3800741cd3c77f07e965585fbca3d90adf9f3739 Mon Sep 17 00:00:00 2001 From: YoonYn9915 Date: Sat, 12 Apr 2025 23:49:12 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[BOJ]=20=EA=B3=84=EB=8B=A8=20=EC=88=98=20/?= =?UTF-8?q?=20=EA=B3=A8=EB=93=9C=201=20/=2060=EB=B6=84=20=EC=8B=A4?= =?UTF-8?q?=ED=8C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://www.acmicpc.net/problem/1562 --- ...-\352\263\204\353\213\250 \354\210\230.py" | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 "YoonYn9915/dp/2025-04-12-[\353\260\261\354\244\200]-#1562-\352\263\204\353\213\250 \354\210\230.py" diff --git "a/YoonYn9915/dp/2025-04-12-[\353\260\261\354\244\200]-#1562-\352\263\204\353\213\250 \354\210\230.py" "b/YoonYn9915/dp/2025-04-12-[\353\260\261\354\244\200]-#1562-\352\263\204\353\213\250 \354\210\230.py" new file mode 100644 index 00000000..70f90efe --- /dev/null +++ "b/YoonYn9915/dp/2025-04-12-[\353\260\261\354\244\200]-#1562-\352\263\204\353\213\250 \354\210\230.py" @@ -0,0 +1,26 @@ +import sys + +input = sys.stdin.readline + +N = int(input()) +dp = [[[0 for _ in range(1 << 10)] for _ in range(10)] for _ in range(N)] +mod = 1000000000 +res = 0 + +for k in range(1, 10): + dp[0][k][1 << k] = 1 + +for i in range(1, N): + for k in range(10): + for bit in range(1024): + if k - 1 >= 0: + dp[i][k][bit | (1 << k)] += dp[i - 1][k - 1][bit] + if k + 1 <= 9: + dp[i][k][bit | (1 << k)] += dp[i - 1][k + 1][bit] + dp[i][k][bit | (1 << k)] %= mod + +for k in range(10): + res += dp[N - 1][k][1023] + res %= mod + +print(res)