Jun's Development Journey

[BOJ] 1018번 체스판 다시 칠하기 본문

BOJ/BruteForce

[BOJ] 1018번 체스판 다시 칠하기

J_Jayce 2021. 5. 26. 15:00

문제

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

 

1018번: 체스판 다시 칠하기

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

www.acmicpc.net

풀이

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.*;
import java.util.StringTokenizer;
import java.util.Map.*;


public class BOJ_1018 {
    static int min=Integer.MAX_VALUE;
    static void calc_color(boolean[][] chess, int fr, int fc){
        boolean first = chess[fr][fc];
        int cnt=0;
        for(int i=fr;i<fr+8;i++){
            for(int j=fc;j<fc+8;j++){
                if(chess[i][j]!=first){
                    cnt++;
                }
                first = !first;
            }
            first = !first;
        }
        min = Math.min(min,Math.min(cnt,64-cnt));
    }
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st;
        st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());
        boolean[][] chess = new boolean[N][M];
        for(int i=0;i<N;i++){
            String str = br.readLine();
            for(int j=0;j<M;j++){
                if(str.charAt(j)=='W')
                    chess[i][j] = true;
                else
                    chess[i][j] = false;
            }
        }
        //계산
        for(int i=0;i<=N-8;i++){
            for(int j=0;j<=M-8;j++){
                calc_color(chess,i,j);
            }
        }
        System.out.println(min);
    }
}

'BOJ > BruteForce' 카테고리의 다른 글

[BOJ] 2992번 크면서 작은 수  (0) 2021.04.21
[BOJ] 1062번 가르침  (0) 2021.04.16
[BOJ] 15728번 에리-카드  (0) 2021.04.02
[BOJ] 2798번 블랙잭  (0) 2021.03.10
[BOJ] 1107 리모컨  (0) 2021.02.19