CodingTest/Java
BOJ_2630 : ์์ข ์ด ๋ง๋ค๊ธฐ
Soom_1n
2023. 2. 5. 20:57
2630๋ฒ: ์์ข ์ด ๋ง๋ค๊ธฐ
์ฒซ์งธ ์ค์๋ ์ ์ฒด ์ข ์ด์ ํ ๋ณ์ ๊ธธ์ด N์ด ์ฃผ์ด์ ธ ์๋ค. N์ 2, 4, 8, 16, 32, 64, 128 ์ค ํ๋์ด๋ค. ์์ข ์ด์ ๊ฐ ๊ฐ๋ก์ค์ ์ ์ฌ๊ฐํ์นธ๋ค์ ์์ด ์์ค๋ถํฐ ์ฐจ๋ก๋ก ๋์งธ ์ค๋ถํฐ ๋ง์ง๋ง ์ค๊น์ง ์ฃผ์ด์ง๋ค.
www.acmicpc.net
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- N x N ํฌ๊ธฐ์ ์ ์ฌ๊ฐํ ์ข
์ด๋ฅผ ๊ฐ์ ์์ผ๋ก๋ง ์ด๋ฃจ์ด์ง ์ ์ฌ๊ฐํ์ผ๋ก ์๋ฅผ ๋ ์ต์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
- ์ข ์ด๋ฅผ ์๋ฅด๋ ๋ฐฉ๋ฒ์ ํ ๋ณ์ ๊ธธ์ด๋ฅผ ์ ๋ฐ์ผ๋ก ํ๋ ์ ์ฌ๊ฐํ 4๊ฐ๋ฅผ ๋ง๋๋ ๊ฒ์ด๋ค.
- ํ ์ ์ฌ๊ฐํ ๋ฒ์๊ฐ ๋ชจ๋ ๊ฐ์ ์์ธ์ง ์ฒดํฌํ๊ณ , ๊ฐ์ง ์๋ค๋ฉด 4๋ฑ๋ถ์ผ๋ก ์๋ผ ๋ค์ ์์ ์ฒดํฌํ๋ ์ฌ๊ท ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
- ์ฌ๊ท ๋ฉ์๋์ ์ ๋ ฅ ๊ฐ์ ํ ๋ณ์ ๊ธธ์ด์ ์ข์๋จ์ ์ขํ์ด๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.util.Scanner;
public class Main {
private static int[][] arr;
private static int white, blue;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
arr = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
arr[i][j] = sc.nextInt();
}
}
cutting(n, 0, 0);
System.out.println(white);
System.out.println(blue);
}
private static int cutting(int n, int x, int y) {
// print(n, x, y);
int pick = arr[x][y];
if (n > 1) {
for (int i = x; i < x + n; i++) {
for (int j = y; j < y + n; j++) {
if (arr[i][j] != pick) {
cutting(n / 2, x, y);
cutting(n / 2, x + n / 2, y);
cutting(n / 2, x, y + n / 2);
cutting(n / 2, x + n / 2, y + n / 2);
return 0;
}
}
}
}
if (pick == 0) white++;
else blue++;
return 0;
}
private static void print(int n, int x, int y) {
System.out.println("\n==================(" + x +", "+ y +")========================");
for (int i = x; i < x + n; i++) {
for (int j = y; j < y + n; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ํ์ ์์ข
์ด์ ํ๋ ์์ข
์ด์ ๊ฐ์ ํด๋์ค ๋ฉค๋ฒ ๋ณ์๋ก ๋๊ณ ์ ๊ท ๋ฉ์๋ cutting()์ ๋๋ ค ์นด์ดํธํ๋ค.
- ๊ฒ์ฌํ๋ ๋ฒ์์ ์์ด ๋ชจ๋ ๊ฐ์ง ์๋ค๋ฉด 4๋ฑ๋ถ์ผ๋ก ์๋ฅด๊ณ , ๊ฐ๋ค๋ฉด ๊ทธ ์์ ๊ฐ์ ์นด์ดํธํ๋ค.
- 4๋ฑ๋ถ ํ ๋, n์ 2๋ฑ๋ถํ๊ณ , ๊ทธ๋งํผ ์์ ์ขํ๊ฐ์ ์์ง์ฌ์ 4๋ฒ cutting()์ ์ ๋ ฅํด ์ฌ๊ท๋ฅผ ์ฌ์ฉํ๋ค.
๐ธ end ๐ธ
- ๋ถํ ์ ๋ณต ๋ฌธ์ ๋ผ๋๋ฐ ์ต์์น ์์ ์ ๊ทผ ๋ฐฉ๋ฒ์ด์์ง๋ง, ๋ง์ด ์ด๋ ต์ง๋ ์์๋ค.
- ์ฌ๊ท ๋ฉ์๋ ์ฌ์ฉ์ด ์๊ฐ๋ณด๋ค ์ฐ์ต์ด ๋ ๋ ๊ฒ ๊ฐ์์ ์ฌ๊ท ๋ฌธ์ ๋ฅผ ํ์ด๋ณผ๊น ํ๋ค.
- ๋ฌธ์ ์ ๊ทผ, ํ์ด๊ณํ ๋ฉ๋ชจ๋ฅผ ์์ฑํ๋ค.
728x90