BOJ_S2_1780
π [S2_1780] μ’ μ΄μ κ°μ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static StringTokenizer st;
static int[][] arr;
static int[] color;
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// νλ ¬μ ν¬κΈ°
int N = Integer.parseInt(br.readLine());
arr = new int[N][N];
// -1, 0, 1
color = new int[3];
// λ°°μ΄ μ
λ ₯
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);
for(int i=0; i<3; i++) {
System.out.println(color[i]);
}
}
static void partition(int row, int col, int size) {
// μ’
μ΄κ° λ€ κ°μ μμ΄λ©΄
if(check(row, col, size)) {
if(arr[row][col] == -1) {
color[0]++;
}
else if(arr[row][col] == 0) {
color[1]++;
}
else {
color[2]++;
}
return;
}
// λ€ λ€λ₯Έμμ΄λ©΄ 9 λ±λΆ
int newSize = size/3;
// 맨 μμ€
partition(row,col,newSize);
partition(row,col + newSize ,newSize);
partition(row,col + 2*newSize,newSize);
// μ€κ° μ€
partition(row + newSize,col,newSize);
partition(row + newSize,col + newSize ,newSize);
partition(row + newSize,col + 2*newSize,newSize);
// 맨 λ°μ€
partition(row + 2*newSize,col,newSize);
partition(row + 2*newSize,col + newSize ,newSize);
partition(row + 2*newSize,col + 2*newSize,newSize);
}
// μ’
μ΄κ° λ€ κ°μ κ°μΈμ§ μλμ§
static boolean check(int row, int col, int size) {
int first = arr[row][col];
for(int i=row; i<row+size; i++) {
for(int j=col; j<col+size; j++) {
if(first != arr[i][j]) {
return false;
}
}
}
return true;
}
}
π€ λμ μκ°
9λ±λΆμ νμ¬ κ³μ ꡬν΄λ΄λ κ²μ λ³΄κ³ μ¬κ·κ° λ μ¬λλ€.
κ·Έλμ μ’
μ΄μμ μ«μκ° λ€ κ°μ μμΈμ§ μμλ΄λ λ©μλ νλ , μ 체λ₯Ό λλ©΄μ κ°μ μμ΄λ©΄ κ° μ«μμ κ°μλ₯Ό μΉ΄μ΄ν
ν΄μ£Όκ³ λ€λ₯Έ μμ΄λ©΄ 9λ±λΆνμ¬ μ¬κ·λ₯Ό λλ Έλ€.
μ΄λ° λ¬Έμ λ λΆν μ μ μ΄μ©ν΄μΌ νλ κ² κ°λ€. μ¬κ·λ₯Ό λ리면 λ³΄ν΅ νλμ μ¬κ· νΈμΆλ¬ΈμΌλ‘ μκ°νλλ° λΆν λ¬Έμ λ λΆν νλ κ°μλ§νΌ μ¬κ· νΈμΆλ¬Έμ μ¬μ©ν΄μΌν΄μ μκ³ μμ§ μμΌλ©΄ μκ°ν΄λ΄κΈ° μ΄λ €μ΄ κ² κ°λ€.
κ·Έλ¦¬κ³ μ¬κ· νΈμΆν λ μλ‘μ΄ μ¬μ΄μ¦λ₯Ό Nμ΄ 3μ λ°°μλκΉ 3μ λλ μ£Όλ κ²λ μ€μνλ€.
μ€λ²2 μμ§λ§ λΆν μ λν΄ λ―Έμνμ¬ μκ°μ΄ μ’ κ±Έλ Έλ€..
κ·Έλ¦¬κ³ μ μΌ μ²μμλ 9λΆν μ λͺ»λ³΄κ³ λ¬λΌμ§λ©΄ λΆν ν΄μΌλλ κ²μ μκ°νλ€ λ무 μ΄λ €μ΄λ° νκ³ λ³΄λ 9λΆν μ΄μλ°.. γ
γ
μ’ λ μ§μ€ νμ !!