From dc61f30f6d5e23f775d5d3e43c6adecc84828e02 Mon Sep 17 00:00:00 2001
From: LiiNi-coder <97495437+LiiNi-coder@users.noreply.github.com>
Date: Mon, 21 Jul 2025 23:26:15 +0900
Subject: [PATCH] =?UTF-8?q?[20250721]=20BOJ=20/=20G5=20/=20=EB=84=B4?=
=?UTF-8?q?=EB=AA=A8=EB=84=B4=EB=AA=A8=20(Easy)=20/=20=EC=9D=B4=EC=9D=B8?=
=?UTF-8?q?=ED=9D=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...252\250\353\204\264\353\252\250 (Easy).md" | 63 +++++++++++++++++++
1 file changed, 63 insertions(+)
create mode 100644 "LiiNi-coder/202507/21 BOJ \353\204\264\353\252\250\353\204\264\353\252\250 (Easy).md"
diff --git "a/LiiNi-coder/202507/21 BOJ \353\204\264\353\252\250\353\204\264\353\252\250 (Easy).md" "b/LiiNi-coder/202507/21 BOJ \353\204\264\353\252\250\353\204\264\353\252\250 (Easy).md"
new file mode 100644
index 00000000..717911af
--- /dev/null
+++ "b/LiiNi-coder/202507/21 BOJ \353\204\264\353\252\250\353\204\264\353\252\250 (Easy).md"
@@ -0,0 +1,63 @@
+```java
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+//TIP 코드를 실행하려면 을(를) 누르거나
+// 에디터 여백에 있는 아이콘을 클릭하세요.
+public class Main {
+ private static BufferedReader br;
+ private static int answer;
+ private static int[][] map;
+ private static int m;
+ private static int n;
+
+ public static void main(String[] args) throws IOException {
+ br = new BufferedReader(new InputStreamReader(System.in));
+ var temp = br.readLine().split(" ");
+ n = Integer.parseInt(temp[0]);
+ m = Integer.parseInt(temp[1]);
+ map = new int[n][m];
+ answer = 0;
+ dfs(0);
+ System.out.println(answer);
+ br.close();
+ }
+
+ private static void dfs(int idx) {
+ //종료
+ if(idx == n*m){
+ answer++;
+ return;
+ }
+ //idx에 네모 없는 것으로 진행
+ int r = idx / m;
+ int c = idx % m;
+ map[r][c] = 0;
+ dfs(idx+1);
+
+ if(isValid(idx)){
+ map[r][c] = 1;
+ dfs(idx+1);
+ }
+ }
+
+ private static boolean isValid(int idx) {
+ int r = idx/m;
+ int c = idx% m;
+ boolean isFirstCol = c == 0;
+ if(isFirstCol) return true;
+ if(r == 0){
+ return true;
+ }
+ boolean leftDown = (map[r][c-1] == 1);
+ boolean leftUp = (map[r-1][c-1] == 1);
+ boolean rightUp = (map[r-1][c] == 1);
+ if(leftDown && leftUp && rightUp){
+ return false;
+ }else{
+ return true;
+ }
+ }
+}
+```