반응형
https://www.acmicpc.net/problem/2630
4분 탐색(?) 분할정복!
4개로 나누어서 다시 탐색하고 해당 안 되면 다시 탐색하고~
import java.util.*;
import java.io.*;
public class Main {
public static int map[][];
public static int white,blue;
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
map = new int[N][N];
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
map[i][j] = sc.nextInt();
}
}
find(0,0,N,N);
System.out.println(white);
System.out.print(blue);
}
public static void find(int startRow, int StartCol, int EndRow, int EndCol) {
int sum = 0;
for (int i = startRow; i < EndRow; i++) {
for (int j = StartCol; j < EndCol; j++) {
sum+= map[i][j];
}
}
if(sum==0) {
white++;
return;
}
else if(sum == (EndCol - StartCol) * (EndRow - startRow)) {
blue++;
return;
}
else {
find(startRow, StartCol, (startRow+EndRow)/2, (StartCol+EndCol)/2);
find((startRow+EndRow)/2, StartCol, EndRow, (StartCol+EndCol)/2);
find(startRow, (StartCol+EndCol)/2, (startRow+EndRow)/2, EndCol);
find((startRow+EndRow)/2, (StartCol+EndCol)/2, EndRow, EndCol);
}
}
}
반응형
'2. 알고리즘사이트 > 1. 백준' 카테고리의 다른 글
달이 차오른다, 가자. [백준 1194][골드1][Java] (0) | 2020.03.02 |
---|---|
봄버맨 [백준 16918][실버2][Java] (0) | 2020.03.02 |
보이저 1호 [백준 3987][실버3][Java] (0) | 2020.03.02 |
좋은수열 [백준 2661][골드4][Java] (0) | 2020.03.02 |
뱀 [백준 3190][실버1][Java] (0) | 2020.03.02 |