[알고리즘][X] 색종이
2024. 2. 6. 20:38ㆍ알고리즘 풀이/Java
https://www.acmicpc.net/problem/2563
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int[][] whitePaper = new int[201][201];
int n = Integer.parseInt(br.readLine());
for (int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine());
int row = Integer.parseInt(st.nextToken());
int col = Integer.parseInt(st.nextToken());
paintWhitePaper(whitePaper, row * 2, col * 2);
}
int sum = 0;
for (int i = 0; i < 201; i++) {
for (int j = 0; j < 201; j++) {
if (whitePaper[i][j] == 1) {
if (i+1 < 201 && j + 1 < 201
&& whitePaper[i+1][j] == 1 && whitePaper[i][j+1] == 1 && whitePaper[i+1][j+1] == 1) {
sum += 1;
}
}
}
}
System.out.println(sum / 4);
}
private static void paintWhitePaper(int[][] whitePaper, int row, int col) {
for (int i = row; i <= row + 20; i++) {
for (int j = col; j <= col + 20; j++) {
whitePaper[i][j] = 1;
}
}
}
}
나의 풀이
- 처음에는 배열 크기를 100으로 했다가 틀림
- 틀린 이유는 점 네 개가 모두 1인데도 불구하고 서로 맞닿지 않는 상황이 있었기 때문이다.
- 그래서 모든 크기를 2배로 해주고 합을 구하고 나누기 4를 해주었다.
'알고리즘 풀이 > Java' 카테고리의 다른 글
[알고리즘] 중위 순회 (0) | 2024.02.12 |
---|---|
[알고리즘] 절댓값 힙 (0) | 2024.02.07 |
[알고리즘] 큐 (0) | 2024.02.06 |
[알고리즘] 배열 돌리기 1 (1) | 2024.02.06 |
[알고리즘] 트리 정리 (0) | 2024.02.06 |