PS/Java
[백준] 2563번: 색종이
siyamaki
2021. 3. 9. 15:09
가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오.
import java.util.Scanner;
public class 색종이 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[][] arr = new int[100][100];
for(int i = 0; i < n; i++) {
int x = scanner.nextInt();
int y = scanner.nextInt();
for(int j = x; j < x + 10; j++) {
for(int k = y; k < y + 10; k++) {
arr[j][k] = 1;
}
}
}
int count = 0;
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr.length; j++) {
if(arr[i][j] == 1) {
count++;
}
}
}
System.out.println(count);
}
}
[풀이]
단순하게 생각한다.
도화지는 100 by 100 배열로 만들고 색종이는 도화지를 1로 바꾼다. 결국 칠하는것과 같다.
최종적으로 1의 갯수를 세면 그것이 색종이의 넓이이다.
겹치는 부분은 생각 안해도 된다. 어차피 1로 덮어씌워지기 때문이다.