728x90
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[][] arr = new int[100][100];
int cnt=0;
for(int i=0 ; i<N ; i++) {
int x = sc.nextInt();
int y = sc.nextInt();
for(int a=x;a<x+10;a++) {
for(int b=y;b<y+10;b++) {
arr[a][b]=1;
}
}
}
for(int i=0 ; i<100 ; i++) {
for(int j=0 ; j<100 ; j++) {
if(arr[i][j]==1) {
cnt++;
}
}
}
System.out.println(cnt);
}
}
해당 문제를 해결하는 방법 중 2차원 배열을 이용할 수 있다는 것을 생각해 내는 것이 어려운 문제 같지만...
2차원 배열 파트 문제이므로 아이디어를 얻어 손쉽게 해결하였다.
도화지의 크기와 같은 100x100 사이즈의 2차원 배열을 생성한다.
도화지가 준비되었다. 이제 색종이를 준비해보자.
3개의 색종이의 시작점 좌표를 받아 가로 10 세로 10만큼 도화지에 1을 찍어준다.
쉽게 생각해 보면
100픽셀x100픽셀 짜리 화면에 1x1픽셀을 찍는다고 생각하면 편하다.
그렇게 3개의 색종이 전부 도화지에 칠해준다.
겹치는 경우는 이미 1로 색칠돼있기 때문에 다시 1로 색칠한다고 해도 문제가 없다.
최종적으로 1의 갯수를 카운팅해서 출력한다.
728x90
'백준 단계별' 카테고리의 다른 글
[Java] 백준 2587: 대표값2 (0) | 2023.02.02 |
---|---|
[Java] 백준 2750: 수 정렬하기 (0) | 2023.02.02 |
[Java] 백준 2566: 최댓값 (0) | 2023.01.26 |
[Java] 백준 2738: 항렬 덧셈 (0) | 2023.01.25 |
[Java] 백준 1712: 손익분기점 (0) | 2023.01.25 |