From 7e3a843fd19c804a40856378a40456821cbcb031 Mon Sep 17 00:00:00 2001 From: JHLEE325 <82587652+JHLEE325@users.noreply.github.com> Date: Fri, 6 Feb 2026 20:34:51 +0900 Subject: [PATCH] =?UTF-8?q?[20260206]=20BOJ=20/=20P5=20/=20=EB=B9=84?= =?UTF-8?q?=EC=88=8D=20/=20=EC=9D=B4=EC=A4=80=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../06 BOJ P5 \353\271\204\354\210\215.md" | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 "JHLEE325/202602/06 BOJ P5 \353\271\204\354\210\215.md" diff --git "a/JHLEE325/202602/06 BOJ P5 \353\271\204\354\210\215.md" "b/JHLEE325/202602/06 BOJ P5 \353\271\204\354\210\215.md" new file mode 100644 index 00000000..d2ddb06f --- /dev/null +++ "b/JHLEE325/202602/06 BOJ P5 \353\271\204\354\210\215.md" @@ -0,0 +1,55 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + + static int n; + static int[][] board; + static boolean[] diag1; + static boolean[] diag2; + static int[] maxCount = new int[2]; // 0: 검은색, 1: 흰색 + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + n = Integer.parseInt(br.readLine()); + board = new int[n][n]; + + diag1 = new boolean[2 * n]; + diag2 = new boolean[2 * n]; + + for (int i = 0; i < n; i++) { + StringTokenizer st = new StringTokenizer(br.readLine()); + for (int j = 0; j < n; j++) { + board[i][j] = Integer.parseInt(st.nextToken()); + } + } + + backtracking(0, 0, 0, 0); + backtracking(0, 1, 0, 1); + + System.out.println(maxCount[0] + maxCount[1]); + } + + static void backtracking(int r, int c, int count, int color) { + maxCount[color] = Math.max(maxCount[color], count); + + if (c >= n) { + r++; + c = (c % 2 == 0) ? 1 : 0; + } + + if (r >= n) return; + + if (board[r][c] == 1 && !diag1[r + c] && !diag2[r - c + n]) { + diag1[r + c] = true; + diag2[r - c + n] = true; + backtracking(r, c + 2, count + 1, color); + diag1[r + c] = false; + diag2[r - c + n] = false; + } + + backtracking(r, c + 2, count, color); + } +} +```