[BOJ/백준/C++] 1018번 체스판 다시 칠하기

2024. 1. 26. 01:29·Coding Test/Baekjoon
728x90
반응형
 

1018번: 체스판 다시 칠하기

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

www.acmicpc.net


📌 접근 방법

  • MN 크기의 이차배열을 반복문을 통해 8x8 배열로 쪼개어보았다
  • W가 짝수에 나오고 B가 홀수에 나오는 경우를 센다.
  • W가 홀수에 나오고 B가 짝수에 나오는 경우를 센다.
    ➡  더 많이 나온 수를 구하여 8x8=64에서 빼주었다
    ➡ 그만큼이 다시 칠해야 하는 개수이므로 최소값을 구하여 출력

 

 

✅  Pass Code

#include<iostream>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;

int main()
{
    int M,N;
    cin>>M>>N;

    char arr[51][51];

    for(int i=0; i<M; i++){
        for(int j=0; j<N; j++){
            cin>>arr[i][j];
        }
    }


    int min=2501;
    for(int k=0; k<M-7; k++){
        for(int l=0; l<N-7; l++){
            int cnt_e=0, cnt_o=0,cnt=0;
            for(int i=0; i<8; i++){
                for(int j=0; j<8; j++) {
                    if ((i + k + j + l) % 2 == 0 && arr[i+k][j+l]=='W'||(i + k + j + l) % 2 == 1 && arr[i+k][j+l]=='B') {
                        cnt_e++;

                    } else if((i + k + j + l) % 2 == 0 && arr[i+k][j+l]=='B'||(i + k + j + l) % 2 == 1 && arr[i+k][j+l]=='W'){
                        cnt_o++;
                    }
                }
            }
            cnt_e=64-cnt_e;
            cnt_o=64-cnt_o;
            if(cnt_e<cnt_o){
                cnt=cnt_e;
            }
            else{
                cnt=cnt_o;
            }
            if(cnt<min){
                min=cnt;
            }

        }
    }
    cout<<min<<endl;
    return 0;
}

 

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Coding Test > Baekjoon' 카테고리의 다른 글

[BOJ/백준/C++] 1436번 영화감독 숌  (2) 2024.01.26
[BOJ/백준/C++] 2231번 분해합  (1) 2024.01.26
[BOJ/백준/C++] 10757번 큰 수 A+B  (0) 2024.01.26
[BOJ/백준/C++] 2869번 달팽이는 올라가고 싶다  (0) 2024.01.26
[BOJ/백준/C++] 1193번 분수찾기  (2) 2024.01.26
'Coding Test/Baekjoon' 카테고리의 다른 글
  • [BOJ/백준/C++] 1436번 영화감독 숌
  • [BOJ/백준/C++] 2231번 분해합
  • [BOJ/백준/C++] 10757번 큰 수 A+B
  • [BOJ/백준/C++] 2869번 달팽이는 올라가고 싶다
예롱메롱
예롱메롱
  • 예롱메롱
    예롱이의 개발 블로그
    예롱메롱
  • 전체
    오늘
    어제
    • 전체보기 (274)
      • 프로젝트 (35)
        • Wedle (12)
        • 인스타그램 클론 코딩 (13)
        • 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 (10)
      • 인프런 Spring 강의 정리 (79)
        • 스프링 입문 - 코드로 배우는 스프링 부트, 웹 .. (7)
        • Spring 핵심 원리 - 기본편 (9)
        • 모든 개발자를 위한 HTTP 웹 기본 지식 (8)
        • 자바 ORM 표준 JPA 프로그래밍 - 기본편 (11)
        • 실전! 스프링 부트와 JPA 활용1 - 웹 애플리.. (6)
        • 실전! 스프링 부트와 JPA 활용2 - API 개.. (5)
        • 실전! 스프링 데이터 JPA (7)
        • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (7)
        • 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 (11)
        • 실전! Querydsl (8)
      • Cloud (3)
      • Spring (6)
        • spring boot (5)
        • 소셜로그인 (1)
      • Docker (2)
      • DevOps (0)
      • Coding Test (114)
        • Programmers (37)
        • Baekjoon (76)
      • KB It's Your Life 6기 (1)
      • CS (18)
        • 알고리즘 (13)
        • 컴퓨터 구조 (1)
        • Operating System (0)
        • Network (0)
        • Database (4)
      • git (1)
      • Language (15)
        • Java (5)
        • C++ (6)
        • Python (4)
    • GITHUB GITHUB
    • INSTAGRAM INSTAGRAM
  • hELLO· Designed By정상우.v4.10.3
예롱메롱
[BOJ/백준/C++] 1018번 체스판 다시 칠하기
상단으로

티스토리툴바