
참고❤️click
코드
import java.io.*;
import java.util.*;
public class Main {
public static boolean [][] board;
public static int min = 64;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Scanner in = new Scanner(System.in);
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
board = new boolean[n][m];
for(int i=0; i<n; i++) {
String line = br.readLine();
for(int j=0; j<m; j++) {
if(line.charAt(j) == 'W') board[i][j] = true; //화이트
else board[i][j] = false; //블랙
}
}
for(int i=0; i<n-8+1; i++) { //가로
for(int j=0; j<m-8+1; j++) { //세로
find(i, j);
}
}
System.out.println(min);
}
public static void find(int x, int y) {
int end_x = x+8;
int end_y = y+8;
int cnt = 0;
boolean color = board[x][y];
for(int i=x; i<end_x; i++) {
for(int j=y; j<end_y; j++) {
if(board[i][j] != color) cnt++;
color = !color;
}
color = !color;
}
cnt = Math.min(cnt, 64-cnt);
min = Math.min(min, cnt); //최솟값 갱신
}
}
2023-03-21