문제
가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오.
코드
import java.util.Scanner;
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 count = 0;
for (int i = 0; i < n; i++) {
int x = sc.nextInt();
int y = sc.nextInt();
for (int j = x; j < x + 10; j++) {
for (int k = y; k < y + 10; k++) {
arr[j][k] = 1;
}
}
}
for (int i = 0; i < 100; i++) {
for (int j = 0; j < 100; j++) {
if (arr[i][j] == 1) {
count++;
}
}
}
System.out.println(count);
}
}풀이
도형을 보여주니 고민을 많이하게 된 문제이다. 하지만 이차원배열 문제라는 것을 깨닫고 보면 매우 쉬운문제이다. 가로세로가 100인것에 가로세로10인것을 넣어주니 한칸당 1의 크기를 가지고 있다고 생각해보자. 이차원배열을 100*100을 만들어 각 색종이가 지나는 좌표 즉 인덱스를 모두 1로 바꾸고 1인것당 값을 세주면 겹치더라도 상관이 없게 된다.
'문제 풀이 > 백준' 카테고리의 다른 글
| 백준 문제풀이 24262~24265 시간복잡도 (0) | 2023.03.06 |
|---|---|
| 백준 문제풀이 2751번 수 정렬하기 2 (0) | 2023.03.02 |
| 백준 문제풀이 11718번 그대로 출력하기 (0) | 2023.03.02 |
| 백준 문제풀이 10798번 세로읽기 (0) | 2023.02.23 |
| 백준 단계별 문제풀이 2941번 (0) | 2023.02.07 |