BOJ_S4_1018
๐ [S4_1018] ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static char[][] board;
static int N,M;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
// **** input start ****
// ํ
N = Integer.parseInt(st.nextToken());
// ์ด
M = Integer.parseInt(st.nextToken());
board = new char[N][M];
// ์ขํ์
๋ ฅ
for(int i=0; i<N; i++){
String str = br.readLine();
for(int j=0; j<M; j++){
board[i][j] = str.charAt(j);
}
}
// **** input end ****
// ์ฒดํฌํ string
String str1 = "BWBWBWBW";
String str2 = "WBWBWBWB";
int sum = 0;
int min = Integer.MAX_VALUE;
// ๋ชจ๋ ์ขํ ํ์
for(int i=0; i<N; i++){
for(int j=0; j<M; j++){
// ๊ฐ์ง์น๊ธฐ ๋ง์ฝ 8*8 ๋ฐฐ์ด์ ๋ง๋ค์ง ๋ชปํ๋ค๋ฉด ( ๋ฒ์ ์ด๊ณผ ) ํต๊ณผ
if(i+8>N || j+8>M){
continue;
}
sum = rectangle(j,i,str1,str2);
// ์ต์๊ฐ ๊ตฌํ๊ธฐ
min = Math.min(min, sum);
sum = rectangle(j,i,str2,str1);
// ์ต์๊ฐ ๊ตฌํ๊ธฐ
min = Math.min(min, sum);
}
}
System.out.println(min);
} // main end
// sum ๊ณ์ฐ
static int rectangle(int x, int y, String first, String second){
int sum = 0;
// ํ ๋ฒํธ
int temp = 0;
for(int i=y; i<y+8; i++){
// string ์ด ๋ฒํธ
int temp2 = 0;
for(int j=x; j<x+8; j++){
// first check
if(temp % 2 == 0){
// ๋ง์ฝ ๊ฐ์ด ๋ค๋ฅด๋ค๋ฉด ์นด์ดํ
if(board[i][j] != first.charAt(temp2)) sum++;
}
// second check
else{
// ๋ง์ฝ ๊ฐ์ด ๋ค๋ฅด๋ค๋ฉด ์นด์ดํ
if(board[i][j] != second.charAt(temp2)) sum++;
}
// string ์ด ํ๋ฌ์ค
temp2++;
}
// ํ ํ๋ฌ์ค
temp++;
}
return sum;
}
} // class end
๐ค ๋์ ์๊ฐ
๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ์๊ฐ์ด ์๊ทผํ ๊ฑธ๋ ธ๋ค ใ
ใ
์ฝ๊ฒ ์ดํดํ ์ ์์์ด ใ
๊ทธ๋๋ ๋ฌธ์ ๋ฅผ ์ดํดํ๊ณ ์๊ฐํ ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ขํ๋ฅผ ๋๋ฉด์ ์ขํ๊ฐ์ โBWBWBWBWโ, โWBWBWBWBโ ๋ฅผ ๋ฒ๊ฐ์ ํ์ธํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ์๋ฅผ ์ฒดํฌํด ๊ทธ ์๊ฐ ์ต์์ธ ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ชจ๋ ์ขํ ๋๋ฉด์ check ( 8 * 8 ์๋ผ์ )
- 8 * 8 ๋ฒ์๊ฐ board ๋ฒ์๋ฅผ ๋์ผ๋ฉด continue;
- ๊ฐ์์ง ์ฒดํฌ , ๋ค๋ฅด๋ฉด sum++;
- ์ขํ๋ง๋ค sum ์ด๊ธฐํ
- โBWBWBWBWโ, โWBWBWBWBโ ์์ ๋ฐ๊ฟ์ ์ด 2๋ฒ ์งํ
![](./../../images/1018.jpeg)
์ฒ์์ ๊ตฌ์์ ์๋ ์ขํ๊ฐ์ด โWโ์ธ์ง โBโ์ธ์ง ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ํด์คฌ์๋๋ฐ ํ์ด๋ณด๋ ์์์ขํ์๋ ๊ด๊ณ๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ์์ด ๊ทธ๋ฅ ๋๋ฒ์ ๊ฒฝ์ฐ ๋ค ๊ตฌํด์ฃผ๊ณ ์ต์๊ฐ์ ๊ตฌํด์ฃผ์๋ค.
์๊ฐ์ด๊ณผ๊ฐ ๋์ง ์๋ ๋ฒ์๋ผ ๋คํ์ด์๋ค.