1. 문제
2. 접근법
- 다 더해서 겹치는 범위를 빼줘도 좋지만
- 그렇게 하면 겹치는 범위를 찾기가 어려울 것 같다;;
- 그래서 흰 도화지를 boolean 2차원 배열로 만들고, 검은색 색종이 범위를 true로 표현하기로 함
- 중복을 줄이기 위해 true로 바꿔주면서 동시에 넓이도 같이 합해줌
3. 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Boj_2563_색종이 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
boolean [][] paper = new boolean[101][101];
int answer = 0;
for(int i = 0; i < N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int r = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
for(int nr = 0; nr < 10; nr++) {
for(int nc = 0; nc < 10; nc++) {
if(!paper[r+nr][c+nc]) {
paper[r+nr][c+nc] = true;
answer++;
}
}
}
}
System.out.println(answer);
}
}
'알고리즘 풀이 > 백준' 카테고리의 다른 글
백준 2667 - 단지번호 붙이기 (0) | 2022.08.16 |
---|---|
백준 1018 - 체스판 다시 칠하기 (0) | 2022.08.15 |
백준 7568 - 덩치 (0) | 2022.08.14 |
백준 2231 - 분해합 (0) | 2022.08.14 |
백준 3040 - 백설공주와 일곱 난쟁이 (0) | 2022.08.14 |