https://www.acmicpc.net/problem/1780
๋ถํ ์ ๋ณต&์ฌ๊ท ๋ฌธ์ ์ด๋ค. ์ง๊ธ๊น์ง ํ์๋ ๋ถํ ์ ๋ณต ๋ฌธ์ ์ค์์๋ ์ฌ์ด ์ถ์ ์ํ๋ ๊ฒ ๊ฐ๋ค. ์ฌ๊ท์ ์ฝํด์ ์ซ์๋๋ฐ ์๊ฐ๋ณด๋ค ๊ธ๋ฐฉ ํ๋ ธ๋ค.
์ข ์ด์ ์์์ ์ ํ ๋ฒํธ, ์ด ๋ฒํธ, ์ข ์ด์ ํฌ๊ธฐ๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ณด๋ด ์ข ์ด๊ฐ ๊ฐ์ ์๋ก ์ด๋ฃจ์ด์ ธ ์๋์ง ํ์ธํ๋ค.
์ข ์ด๊ฐ ๊ฐ์ ์๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉด, ํด๋น ์์ ์นด์ดํฐ๋ฅผ ์ฌ๋ฆฌ๊ณ ์ข ๋ฃํ๋ค.
๊ฐ์ ์๋ก ์ด๋ฃจ์ด์ ธ ์์ง ์์ผ๋ฉด, ์ฌ๊ท๋ฅผ ํตํด ํฌ๊ธฐ๋ฅผ 1/3๋ก ์ค์ฌ 9๊ฐ์ง์ ์ข ์ด์ ์์์ ์์ ๋ค์ ํ์ํ๋ค.
์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class NumberOfPaper {
static int[] count;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[][] arr = new int[N][N];
for(int i = 0; i < N; i++) {
String[] input = br.readLine().split(" ");
for(int j = 0; j < N; j++) {
arr[i][j] = Integer.parseInt(input[j]);
}
}
count = new int[3];
paper(arr, 0, 0, N);
System.out.println(count[0]);
System.out.println(count[1]);
System.out.println(count[2]);
}
public static void paper(int[][] arr, int x, int y, int n) {
int num = arr[x][y];
boolean isSame = true;
for(int i = x; i < x + n; i++) {
for(int j = y; j < y + n; j++) {
if(arr[i][j] != num) {
isSame = false;
break;
}
}
}
if(isSame) {
if(num == -1) {
count[0]++;
} else if(num == 0) {
count[1]++;
} else if(num == 1) {
count[2]++;
}
return;
} else {
paper(arr, x, y, n / 3);
paper(arr, x, y + n / 3, n / 3);
paper(arr, x, y + n / 3 * 2, n / 3);
paper(arr, x + n / 3, y, n / 3);
paper(arr, x + n / 3, y + n / 3, n / 3);
paper(arr, x + n / 3, y + n / 3 * 2, n / 3);
paper(arr, x + n / 3 * 2, y, n / 3);
paper(arr, x + n / 3 * 2, y + n / 3, n / 3);
paper(arr, x + n / 3 * 2, y + n / 3 * 2, n / 3);
}
}
}
๊ฒฐ๊ณผ
์ํ์๊ฐ์ด ๊ฝค ํฌ๋ค.. ๊ทธ๋์ ๋ด๊ฐ ๋นํจ์จ์ ์ผ๋ก ์๋ชป ํ์๋ ํ๋ ์๊ฐ์ด ๋ค์๋๋ฐ ์ฑ์ ํํฉ์ ๋ณด๋ ๋ค๋ฅธ ์ฌ๋๋ค๋ ๊ธฐ๋ณธ 1000ms ๋๊ฒ ๋์จ๋ค. ๋คํ์ด๋ค๐
์ฐธ๊ณ
์ค์ค๋ก ํ์ด์ ์์
'Algorithm > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 1916๋ฒ - ์ต์๋น์ฉ ๊ตฌํ๊ธฐ (0) | 2022.04.08 |
---|---|
11404๋ฒ - ํ๋ก์ด๋ (0) | 2022.04.06 |
๋ฐฑ์ค 1072๋ฒ - ๊ฒ์ (0) | 2022.03.30 |
๋ฐฑ์ค 2805๋ฒ - ๋๋ฌด ์๋ฅด๊ธฐ (0) | 2022.03.28 |
๋ฐฑ์ค 2156๋ฒ - ํฌ๋์ฃผ ์์ (0) | 2022.03.17 |