Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 1018] 체스판 다시 칠하기 본문
반응형
주어진 n*m의 배열에서 8*8 범위를 한칸씩 움직이면서 모두 검사한다.
1. BWBW... 순으로 진행하는 체스판을 90도 회전시키면 WBWB... 가 되므로
64 - 칠한 개수와 칠한 개수 중 작은 값을 최소값으로 사용한다.
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
char[][] chess = new char[m][n];
int min = 64;
for(int i=0; i<m; i++) {
chess[i] = sc.next().toCharArray();
}
int a=0, b=0;
while(true) {
int cnt = 0;
int idx = 0;
for(int i=a; i<8+a; i++) {
for(int j=b; j<8+b; j++) {
if(idx%2 == 0 && i%2 == 0 && chess[i][j] != 'B')
cnt++;
if(idx%2 == 1 && i%2 == 0 && chess[i][j] != 'W')
cnt++;
if(idx%2 == 0 && i%2 == 1 && chess[i][j] != 'W')
cnt++;
if(idx%2 == 1 && i%2 == 1 && chess[i][j] != 'B')
cnt++;
idx++;
}
}
idx = 0;
cnt = (64 - cnt) < cnt ? 64 - cnt : cnt;
min = cnt < min ? cnt : min;
b++;
if(b == n-7) {
b = 0;
a++;
}
if(a == m-7) break;
}
System.out.println(min);
}
반응형
'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글
[백준 1024] 수열의 합 (0) | 2019.04.01 |
---|---|
[백준 1003] 피보나치 함수 (0) | 2019.04.01 |
[백준 1463] 1로 만들기 (0) | 2019.03.31 |
[백준 2503] 숫자 야구 (0) | 2019.03.29 |
[백준 10448] 유레카 이론 (0) | 2019.03.29 |
Comments