1018 체스판 다시 칠하기
본문 바로가기
알고리즘 모음집/New 알고리즘

1018 체스판 다시 칠하기

by KyeongMin 2021. 2. 20.
728x90
반응형

www.acmicpc.net/submit/1018/18393279

 

로그인

 

www.acmicpc.net

#include<stdio.h>
using namespace std;
#define ARR_SIZE 50//배열 최대 크기
char chess[2][8][8] = {
	{
		{'B','W','B','W','B','W','B','W'},
		{'W','B','W','B','W','B','W','B'},
		{'B','W','B','W','B','W','B','W'},
		{'W','B','W','B','W','B','W','B'},
		{'B','W','B','W','B','W','B','W'},
		{'W','B','W','B','W','B','W','B'},
		{'B','W','B','W','B','W','B','W'},
		{'W','B','W','B','W','B','W','B'}
	},
	{
		{'W','B','W','B','W','B','W','B'},
		{'B','W','B','W','B','W','B','W'},
		{'W','B','W','B','W','B','W','B'},
		{'B','W','B','W','B','W','B','W'},
		{'W','B','W','B','W','B','W','B'},
		{'B','W','B','W','B','W','B','W'},
		{'W','B','W','B','W','B','W','B'},
		{'B','W','B','W','B','W','B','W'}
	}
};
char chessBoard[ARR_SIZE][ARR_SIZE];// 체스 저장 배열
int main(void) {
	int N, M;// 가로 세로 입력 크기
	int Min = 0x7fffffff;//최소값 저장
	scanf("%d %d", &N, &M);
	for (int i = 0; i < N; i++) {
			scanf("%s", &chessBoard[i]);
	}
	for (int i = 0; i < N; i++) {
		for (int j = 0; j < M; j++) {
			for(int num=0;num<2;num++){
				int cnt = 0;// 개수 카운트
				int flag = 0;//탈출 체크
				for (int ci = 0; ci < 8; ci++) {
					if (i + 8 > N) {
						flag = 1;
						break;//범위 넘어가면 못가게
					}
					for (int cj = 0; cj < 8; cj++) {
						if (j + 8 > M) {
							flag = 1;
							break;
						}
						if (chessBoard[i + ci][j + cj] != chess[num][ci][cj]) {
							cnt++;
						}
					}
					if (flag)break;
				}
				if (flag)break;
				Min = Min > cnt ? cnt : Min;//최소값 저장
			}
		}
	}
	printf("%d\n", Min);
}

728x90
반응형

'알고리즘 모음집 > New 알고리즘' 카테고리의 다른 글

9095 1,2,3 더하기  (0) 2021.02.25
1722 순열의 순서  (0) 2021.02.20
3085 사탕게임  (0) 2021.02.19
1107 리모컨  (0) 2021.02.18
14502 연구소  (0) 2021.01.12

댓글