01-09 04:37
Recent Posts
Recent Comments
Tags
- appetizer
- DB
- Java
- python
- ์คํฝ๋ ํ
- linux
- Naver Cloud
- ํ์ด์๊ณต๋ชจ์
- ICT๋ฉํ ๋ง
- ์กํ๊ณ
- ICT
- DATABASE
- API๋ง์ผํ๋ ์ด์ค
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ด๋ธ์
- SQL
- Spring
- ์๋ฐ
- mysql
- ํ๋ก๋ณด๋ ธ
- ํ์ด์ฌ
- JOBํ๊ณ
- ์จ์ผ๋ํ
- API MarketPlace ๊ธ๋ก๋ฒ ์ํฌํฐ์ฆ
- ์คํฝ์ค๋น
- ํ์ด์
- RaspberryPi
- ์๋์ด๋ ธ
- ict๊ณต๋ชจ์
- TSQL
- Today
- Total
miinsun
[BAEKJOON] ๋ฐฑ์ค ๋ถํ ์ ๋ณต 2630 :: ์์ข ์ด ๋ง๋ค๊ธฐ ๋ณธ๋ฌธ
Algorithm/Baekjoon
[BAEKJOON] ๋ฐฑ์ค ๋ถํ ์ ๋ณต 2630 :: ์์ข ์ด ๋ง๋ค๊ธฐ
miinsun 2022. 4. 10. 19:33
๐ฌ ๋ฌธ์ ์ค๋ช
์๋ <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ์ด ์ฌ๋ฌ๊ฐ์ ์ ์ฌ๊ฐํ์นธ๋ค๋ก ์ด๋ฃจ์ด์ง ์ ์ฌ๊ฐํ ๋ชจ์์ ์ข ์ด๊ฐ ์ฃผ์ด์ ธ ์๊ณ , ๊ฐ ์ ์ฌ๊ฐํ๋ค์ ํ์์์ผ๋ก ์น ํด์ ธ ์๊ฑฐ๋ ํ๋์์ผ๋ก ์น ํด์ ธ ์๋ค.
์ฃผ์ด์ง ์ข ์ด๋ฅผ ์ผ์ ํ ๊ท์น์ ๋ฐ๋ผ ์๋ผ์ ๋ค์ํ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ์ ์ฌ๊ฐํ ๋ชจ์์ ํ์์ ๋๋ ํ๋์ ์์ข ์ด๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ค.
์ ์ฒด ์ข ์ด์ ํฌ๊ธฐ๊ฐ N×N(N=2k, k๋ 1 ์ด์ 7 ์ดํ์ ์์ฐ์) ์ด๋ผ๋ฉด ์ข ์ด๋ฅผ ์๋ฅด๋ ๊ท์น์ ๋ค์๊ณผ ๊ฐ๋ค.
์ ์ฒด ์ข ์ด๊ฐ ๋ชจ๋ ๊ฐ์ ์์ผ๋ก ์น ํด์ ธ ์์ง ์์ผ๋ฉด ๊ฐ๋ก์ ์ธ๋ก๋ก ์ค๊ฐ ๋ถ๋ถ์ ์๋ผ์ <๊ทธ๋ฆผ 2>์ I, II, III, IV์ ๊ฐ์ด ๋๊ฐ์ ํฌ๊ธฐ์ ๋ค ๊ฐ์ N/2 × N/2์์ข ์ด๋ก ๋๋๋ค. ๋๋์ด์ง ์ข ์ด I, II, III, IV ๊ฐ๊ฐ์ ๋ํด์๋ ์์์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ชจ๋ ๊ฐ์ ์์ผ๋ก ์น ํด์ ธ ์์ง ์์ผ๋ฉด ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋๊ฐ์ ํฌ๊ธฐ์ ๋ค ๊ฐ์ ์์ข ์ด๋ก ๋๋๋ค. ์ด์ ๊ฐ์ ๊ณผ์ ์ ์๋ผ์ง ์ข ์ด๊ฐ ๋ชจ๋ ํ์์ ๋๋ ๋ชจ๋ ํ๋์์ผ๋ก ์น ํด์ ธ ์๊ฑฐ๋, ํ๋์ ์ ์ฌ๊ฐํ ์นธ์ด ๋์ด ๋ ์ด์ ์๋ฅผ ์ ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
์์ ๊ฐ์ ๊ท์น์ ๋ฐ๋ผ ์๋์ ๋ <๊ทธ๋ฆผ 3>์ <๊ทธ๋ฆผ 1>์ ์ข ์ด๋ฅผ ์ฒ์ ๋๋ ํ์ ์ํ๋ฅผ, <๊ทธ๋ฆผ 4>๋ ๋ ๋ฒ์งธ ๋๋ ํ์ ์ํ๋ฅผ, <๊ทธ๋ฆผ 5>๋ ์ต์ข ์ ์ผ๋ก ๋ง๋ค์ด์ง ๋ค์ํ ํฌ๊ธฐ์ 9์ฅ์ ํ์์ ์์ข ์ด์ 7์ฅ์ ํ๋์ ์์ข ์ด๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์๋ค.
์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์ข ์ด์ ํ ๋ณ์ ๊ธธ์ด N๊ณผ ๊ฐ ์ ์ฌ๊ฐํ์นธ์ ์(ํ์์ ๋๋ ํ๋์)์ด ์ฃผ์ด์ง ๋ ์๋ผ์ง ํ์์ ์์ข ์ด์ ํ๋์ ์์ข ์ด์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๐จ ์ ์ถ๋ ฅ ์
์ ๋ ฅ
- ์ฒซ์งธ ์ค์๋ ์ ์ฒด ์ข ์ด์ ํ ๋ณ์ ๊ธธ์ด N์ด ์ฃผ์ด์ ธ ์๋ค.
- N์ 2, 4, 8, 16, 32, 64, 128 ์ค ํ๋์ด๋ค.
- ์์ข ์ด์ ๊ฐ ๊ฐ๋ก์ค์ ์ ์ฌ๊ฐํ์นธ๋ค์ ์์ด ์์ค๋ถํฐ ์ฐจ๋ก๋ก ๋์งธ ์ค๋ถํฐ ๋ง์ง๋ง ์ค๊น์ง ์ฃผ์ด์ง๋ค.
- ํ์์์ผ๋ก ์น ํด์ง ์นธ์ 0, ํ๋์์ผ๋ก ์น ํด์ง ์นธ์ 1๋ก ์ฃผ์ด์ง๋ฉฐ, ๊ฐ ์ซ์ ์ฌ์ด์๋ ๋น์นธ์ด ํ๋์ฉ ์๋ค.
์ถ๋ ฅ
- ์ฒซ์งธ ์ค์๋ ์๋ผ์ง ํ์์ ์์ข ์ด์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๊ณ , ๋์งธ ์ค์๋ ํ๋์ ์์ข ์ด์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1)
8
1 1 0 0 0 0 1 1
1 1 0 0 0 0 1 1
0 0 0 0 1 1 0 0
0 0 0 0 1 1 0 0
1 0 0 0 1 1 1 1
0 1 0 0 1 1 1 1
0 0 1 1 1 1 1 1
0 0 1 1 1 1 1 1
์์ ์ถ๋ ฅ 1)
9
7
โ
๐ป Main.java
- (x, y), (x, y + n/2), (x + n/2, y), (x + n/2, y + n/2) 4๊ตฌ์ญ์ผ๋ก ๋๋ ์ ํํฐ์ ๊ฒ์ฌ๋ฅผ ์งํํ๋ค.
- ์์ข ์ด๋ฅผ ๋ง๋ค ์ ์์ผ๋ฉด ์๊น์ ์นด์ดํธํด์ค๋ค.
- ์์ข ์ด๋ฅผ ๋ง๋ค ์ ์์ผ๋ฉด, n์ 2๋ก ๋๋ ๊ฐ๋ฉฐ ๋ฒ์๋ฅผ ์ค์ฌ๊ฐ๋ฉฐ ์ฌ๊ท๋ฅผ ๋๋ ค์ค๋ค.
/* ๋ฐฑ์ค ๋ถํ ์ ๋ณต - 2630 :: ์์ข
์ด ๋ง๋ค๊ธฐ */
import java.util.*;
import java.io.*;
public class Main {
static int[][] arr;
static int BLUE = 0; // 1์ ํด๋น
static int WHITE = 0; // 0์ ํด๋น
public static void partition(int x, int y, int size) {
if (check(x, y, size)) {
if(arr[x][y] == 1) {
BLUE++;
}
else if(arr[x][y] == 0) {
WHITE++;
}
return;
}
int newSize = size / 2;
partition(x, y, newSize); // ์ผ์ชฝ ์
partition(x, y + newSize, newSize); // ์ค๋ฅธ์ชฝ ์
partition(x + newSize, y, newSize); // ์ผ์ชฝ ์๋
partition(x + newSize, y + newSize, newSize);// ์ค๋ฅธ์ชฝ ์๋
}
static boolean check(int x, int y, int size) {
int base = arr[x][y];
for(int i = x; i < x + size; i++) {
for(int j = y; j < y + size; j++) {
if(base != arr[i][j]) {
return false;
}
}
}
return true;
}
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in ));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
arr = new int[n][n];
for(int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine());
for(int j = 0; j < n; j++)
arr[i][j] = Integer.parseInt(st.nextToken());
}
partition(0, 0, n);
System.out.println(WHITE); // 0
System.out.println(BLUE); // 1
br.close();
}
}
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BAEKJOON] ๋ฐฑ์ค ๋ถํ ์ ๋ณต 2447 :: ๋ณ ์ฐ๊ธฐ - 10 (0) | 2022.04.10 |
---|---|
[BAEKJOON] ๋ฐฑ์ค ๋ถํ ์ ๋ณต 1992 :: ์ฟผ๋ํธ๋ฆฌ (0) | 2022.04.10 |
[BAEKJOON] ๋ฐฑ์ค ๋ถํ ์ ๋ณต 11728 :: ๋ฐฐ์ด ํฉ์น๊ธฐ (0) | 2022.04.10 |
[BAEKJOON] ๋ฐฑ์ค ์ด๋ถ๊ฒ์ 10815 :: ์ซ์ ์นด๋ (0) | 2022.04.07 |
[BAEKJOON] ๋ฐฑ์ค ์ด๋ถ๊ฒ์ 2110 :: ๊ณต์ ๊ธฐ ์ค์น (0) | 2022.04.07 |
Comments