728x90
문제
https://www.acmicpc.net/problem/10163
풀이
백준에는 뭐 색종이 유니버스가 있나보다 종이 자르기도 있고 무슨 뭐였지 직사각형 면적 더하기 그런 것도 있고,,,
암튼 색종이 첫번째 문제 풀고나서 이런 문제들 푸니까 어떻게 풀어야할지 딱 보인다고 해야하나 암튼 쉬워졌다.
https://seokmimmmmmmmm.tistory.com/25
-> 내가 말한 색종이 첫번째 문제
암튼 지금 풀이하는 이 문제도 N의 크기가 최대 100까지여서 이런 풀이가 가능할 듯??
2차원 배열에 색칠하듯이 풀면 된다
코드
// 10163번 색종이
// https://www.acmicpc.net/problem/10163
package BAEKJOON;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Num10163_색종이 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
int[][] arr = new int[1001][1001];
for (int i = 1; i <= N; i++) {
st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
int garo = Integer.parseInt(st.nextToken());
int sero = Integer.parseInt(st.nextToken());
for (int j = x; j < x + garo; j++) {
for (int k = y; k < y + sero; k++) {
arr[j][k] = i;
}
}
}
for (int i = 1; i <= N; i++) {
int count = 0;
for (int j = 0; j < 1001; j++) {
for (int k = 0; k < 1001; k++) {
if (arr[j][k] == i) {
count++;
}
}
}
sb.append(count).append("\n");
}
sb.setLength(sb.length() - 1);
System.out.println(sb);
}
}
728x90