색종이가 겹치는 경우의 수는 너무 많아서 그냥 도화지를 만들고 한칸씩 칠해나가는 방법으로 문제를 해결했다.
2차원 배열로 도화지를 만들고 좌표를 입력받을 때 마다 두 좌표의 + 10 범위를 돌면서 칠해져 있지 않다면 칠하고 넓이를 1씩 증가시켰다.
<전체 코드>
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int area = 0;//넓이
int x, y;//입력받을 좌표
boolean[][] paper = new boolean[101][101];//도화지
for(int i = 0; i<n; i++)
{
//좌표를 입력받는다
x = scanner.nextInt();
y = scanner.nextInt();
//x, y좌표 + 10 범위를 돌면서 칠해져 있지 않으면 칠한다
for(int j = x; j<x+10; j++)
{
for(int k = y; k<y+10; k++)
{
//칠해져 있지 않다면
if(!paper[j][k])
{
paper[j][k] = true;//칠한다
area++;//총 넓이 증가
}
}
}
}
System.out.print(area);
}
}
'백준' 카테고리의 다른 글
1764번: 듣보잡(Java) (0) | 2023.01.30 |
---|---|
11478번: 서로 다른 부분 문자열의 개수(Java) (0) | 2023.01.30 |
10773번: 제로(Java) (0) | 2023.01.22 |
14425번: 문자열 집합(Java) (0) | 2023.01.22 |
10814번: 나이 순 정렬(Java) (0) | 2023.01.21 |