Baekjoon 1018. 체스판 다시 칠하기 c++ [Silver IV]

2024. 11. 6. 20:21·Baekjoon/Silver
728x90
반응형

문제에서 "따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다" 이 부분에 대해서 생각해야 했고, 8x8고정 크기이기에 더 큰 체스판도 고정 크기로 움직이며 잘라내 계산해야 했다. 해당 코드가 main 부분에 있는 N-8과 M-8부분이다(N,M이 8이면 8x8크기가 고정되었기에 첫 번째 루프만 수행한다. 만약 N:10,M:12 -> 2랑 4만큼만 잘라내면서 비교하면 된다.) 

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int white_repainting(vector<string> CB,int x, int y){
    int repaints=0;
    for (int i = 0; i < 8; i++){
        for (int j = 0; j < 8; j++){
            char expected=((i+j)%2==0) ? 'W' : 'B';
            if(CB[x+i][y+j]!=expected) repaints++;
        }
    }
    return repaints;
}

int black_repainting(vector<string> CB,int x, int y){
    int repaints=0;
    for (int i = 0; i < 8; i++){
        for (int j = 0; j < 8; j++){
            char expected=((i+j)%2==0) ? 'B' : 'W';
            if(CB[x+i][y+j]!=expected) repaints++;
        }
    }
    return repaints;
}
int main() {
    int N,M;
    cin >> N >> M;
    vector<string> chess_board(N);
    for(int i=0;i<N;i++){
        cin >> chess_board[i];
    }
    
    int min_repaint=64;
    // check board
    for (int i = 0; i <= N-8; i++){
        for (int j = 0; j <= M-8; j++){
            int white_start=white_repainting(chess_board,i,j);
            int black_start=black_repainting(chess_board,i,j);

            min_repaint = min(min_repaint, min(white_start, black_start));
        }
    }
    cout << min_repaint << endl;
    return 0;
}

 

728x90
반응형
저작자표시 (새창열림)

'Baekjoon > Silver' 카테고리의 다른 글

Baekjoon 1920.수 찾기 c++ [Silver V]  (0) 2024.12.09
Baekjoon 11651. 좌표 정렬하기 c++ [Silver V]  (0) 2024.11.28
Baekjoon 1676. 팩토리얼 0의 개수 c++ [Silver V]  (0) 2024.11.21
Baekjoon 2751. 수 정렬하기 2 c++ [Silver V]  (0) 2024.11.07
Baekjoon 1002. 터렛 c++[Silver III]  (0) 2024.07.07
'Baekjoon/Silver' 카테고리의 다른 글
  • Baekjoon 11651. 좌표 정렬하기 c++ [Silver V]
  • Baekjoon 1676. 팩토리얼 0의 개수 c++ [Silver V]
  • Baekjoon 2751. 수 정렬하기 2 c++ [Silver V]
  • Baekjoon 1002. 터렛 c++[Silver III]
Hun-bot
Hun-bot
IT를 중심으로 다양한 것
  • Hun-bot
    로봇이 만드는 눈사람
    Hun-bot
  • 전체
    오늘
    어제
    • All Article (128)
      • Programmers (6)
        • TIP (1)
        • SQL (2)
        • LV1 (1)
        • LV2 (2)
        • LV3 (0)
      • Baekjoon (31)
        • Bronze (10)
        • Silver (19)
        • Gold (2)
        • Platinum (0)
        • Diamond (0)
      • Leetcode (0)
        • Easy (0)
        • Medium (0)
        • Hard (0)
        • SQL (0)
      • 알고리즘(Algorithm) (42)
      • JavaScript (40)
      • Linux (7)
      • JSP (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      Vue #Vue.js #정리
      JS #클래스
      Python #알고리즘
      리눅스
      BaekJoon
      알고리즘 #Algorithm
      프로그래머스
      c++
      JSP #Vscode #톰켓 #Tomcat #Java #Web #jdk
      자바스크립트 #연습문제
      JS #프로그래머스 #숫자의표현 #알고리즘
      async await #js #문법 #자바스크립트 #비동기
      Programmers
      JS #JavaScript #프로그래머스 #카카오
      JavaScript #Set #Collection
      JS #JavaScript #프로그래머스 #알고리즘
      알고리즘
      오블완
      프로그래머스 #자바스크립트 #JS
      JS #정규표현식
      고득점 Kit
      LeetCode #JS #Javascript #Algorithm
      SQL
      티스토리챌린지
      리눅스 #입문
      Algorithm
      파이썬 #입력 #python #input
      JS #javascript #객체 #Object
      자바스크립트
      Javascript
    • 최근 댓글

    • hELLO· Designed By정상우.v4.10.3
    Hun-bot
    Baekjoon 1018. 체스판 다시 칠하기 c++ [Silver IV]
    상단으로

    티스토리툴바

    티스토리툴바