반응형

 

 

<코드>

import java.util.*;
public class Main {
	
	static char chess[][];
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int M = sc.nextInt();
		chess = new char[N][M];
		sc.nextLine();
		
		for (int i = 0; i < N; i++) {
			String s = sc.nextLine();
			for (int j = 0; j < M; j++) {
				chess[i][j] = s.charAt(j);
			}
		}
		
		int ans = 1000000;

		for (int i = 0; i < N-7; i++) {
			for (int j = 0; j < M-7; j++) {
				ans = Math.min(ans, f(i,j));
			}
		}
		System.out.println(ans);
	}
	
	public static int f(int x, int y) {
		int B = 0; // B부터 시작할 때 다시 칠해야 하는 정사각형 수
		int W = 0; // W부터 시작할 때 다시 칠해야 하는 정사각형 수
		
		for (int i = x; i < x+8; i++) {
			for (int j = y; j < y+8; j++) {
				if((i + j) % 2 == 0) {
					if(chess[i][j] == 'B') W++;
					else B++;
				}else { // (i + j) % 2 == 1)
					if(chess[i][j] == 'W') W++;
					else B++;
				}
			}
		}
		return Math.min(B,W);
	}
}

 

 

https://www.acmicpc.net/problem/1018

 

1018번: 체스판 다시 칠하기

첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다.

www.acmicpc.net

 

반응형

'🧩PS > 🥉Easy' 카테고리의 다른 글

[JAVA] 백준 2750번 - 수 정렬하기  (0) 2021.10.07
[JAVA] 백준 1436번 - 영화감독 숌  (0) 2021.10.07
[JAVA] 백준 7568번 - 덩치  (0) 2021.10.05
[JAVA] 백준 2231번 - 분해합  (0) 2021.10.05
[JAVA] 백준 2798번 - 블랙잭  (0) 2021.10.05

+ Recent posts