Bomb Kirby Running
Cat Life - GT-K
1018번 체스판 다시 칠하기

2023. 4. 3. 09:04BaekJoon

단계별로 풀어보기 - 브루트 포스 - 4단계

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

#include <iostream>
using namespace std;

string board[50];
string whiteBoard[8]={
    "WBWBWBWB",
    "BWBWBWBW",
    "WBWBWBWB",
    "BWBWBWBW",
    "WBWBWBWB",
    "BWBWBWBW",
    "WBWBWBWB",
    "BWBWBWBW"
};
string blackBoard[8]={    
    "BWBWBWBW",
    "WBWBWBWB",
    "BWBWBWBW",
    "WBWBWBWB",
    "BWBWBWBW",
    "WBWBWBWB",
    "BWBWBWBW",
    "WBWBWBWB"
};

int whiteCheck(int x,int y)
{
    int count=0;
    for(int i=0;i<8;i++)
    {
        for(int j=0;j<8;j++)
        {
            if(board[i+x][j+y]!=whiteBoard[i][j])
            {
                count++;
            }
        }
    }
    return count;
}

int blackCheck(int x,int y)
{
    int count=0;
    for(int i=0;i<8;i++)
    {
        for(int j=0;j<8;j++)
        {
            if(board[i+x][j+y]!=blackBoard[i][j])
            {
                count++;
            }
        }
    }
    return count;
}


int main()
{
    int N,M,temp,result=64;
    cin>>N>>M;
    for(int i=0;i<N;i++)
    {
        cin>>board[i];
    }
    
    for(int i=0;i<N-7;i++)
    {
        for(int j=0;j<M-7;j++)
        {
            temp=min(whiteCheck(i,j),blackCheck(i,j));
            if(result>temp)
            {
                result=temp;
            }
        }
    }
    cout<<result<<endl;
    return 0;
}

'BaekJoon' 카테고리의 다른 글

2750번 수 정렬하기  (0) 2023.04.03
1436번 영화감독 숌  (0) 2023.04.03
7568번 덩치  (0) 2023.04.03
2231번 분해합  (0) 2023.03.31
2798번 블랙잭  (0) 2023.03.31