Notice
Recent Posts
Link
- Today
- Total
hye-log
[백준]10163번 색종이(JAVA) 본문
0. 문제 링크
https://www.acmicpc.net/problem/10163
10163번: 색종이
평면에 색깔이 서로 다른 직사각형 모양의 색종이 N장이 하나씩 차례로 놓여진다. 이때 색종이가 비스듬하게 놓이는 경우는 없다. 즉, 모든 색종이의 변은 서로 평행하거나, 서로 수직이거나 둘
www.acmicpc.net
1. 문제 설명
1) N장의 색종이가 차례로 놓일 때 색종이가 보이는 부분의 면적 구하기
2. 입출력
// input
2
0 0 10 10
2 2 6 6
// output
64
36
3. 코드
import java.util.*;
public class b10163 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[][] map = new int[1001][1001];
int N = sc.nextInt(); // 색종이의 장수
int[] ans = new int[N]; // 색종이의 면적
for(int n = 1; n <= N; n++) { // 색종이의 장수만큼 반복
int r = sc.nextInt(); // 좌표
int c = sc.nextInt();
int h = sc.nextInt(); // 너비
int w = sc.nextInt(); // 높이
for(int i = r; i < r+h; i++) {
for(int j = c; j < c+w; j++) {
map[i][j] = n; // 해당되는 색종이 위치 넣기
}
}
}
for(int i = 0; i < 1001; i++) { // 1000 * 1000 = 1,000,000 (백만 연산 가능)
for(int j = 0; j < 1001; j++) {
if(map[i][j] > 0) {
ans[map[i][j] - 1]++; // 해당되는 색종이 개수 세기
}
}
}
for(int n = 0; n < N; n++) {
System.out.println(ans[n]); // 출력
}
}
}
실행 결과
4. 회고
1) 색종이를 올릴 때마다 index를 증가시켜 배열의 값으로 저장
5. Github
https://github.com/iihye/Algorithm/blob/main/Baekjoon/b10163.java
728x90
'CodingTest > Baekjoon' 카테고리의 다른 글
[백준]1012번 유기농 배추(JAVA) (0) | 2023.08.09 |
---|---|
[백준]1158번 요세푸스 문제(JAVA) (0) | 2023.08.08 |
[백준]13300번 방 배정(JAVA) (0) | 2023.08.07 |
[백준]2493번 탑(JAVA) (0) | 2023.08.07 |
[백준]2164번 카드2(JAVA) (0) | 2023.08.07 |
Comments