백준 10163번 : 색종이 (java)

2021. 8. 25. 16:12Algorithm/백준

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

// 10163
public class Baekjoon_색종이 {
	static int N; // N장의 색종이
	static int[][] map; // 전체 이차원배열
	static int[] arr; // 색종이마다 면적 넣을 배열

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

		N = Integer.parseInt(in.readLine()); // N장의 색종이
		map = new int[1001][1001];
		arr = new int[N];
		int cnt = 1; // cnt를 밖에다가놔둬야지
		
		for (int t = 0; t < N; t++) {
			StringTokenizer st = new StringTokenizer(in.readLine());
			int x = Integer.parseInt(st.nextToken()); // x좌표
			int y = Integer.parseInt(st.nextToken()); // y좌표
			int width = Integer.parseInt(st.nextToken()); // 너비
			int height = Integer.parseInt(st.nextToken()); // 높이

			 // 색종이 순서대로 cnt를 넣을 예정이다. 첫번째 색종이 부터니까 1로 초기화 . 두번째 색종이는 2를 넣을것이다.
			for (int i = y; i < height + y; i++) {
				for (int j = x; j < width + x; j++) {
					map[i][j] = cnt;
				}
			}

			cnt++; // 다음 색종이에 cnt 플러스
		}
		
		for (int i = 0; i < map.length; i++) {
			for (int j = 0; j < map[0].length; j++) {
				for (int k = 1; k <= N; k++) {
					if(map[i][j] == k) {
						arr[k-1] += 1;
					}
				}
			}
		}
		

		for (int data : arr) {
			System.out.println(data);
		}
	}

}
728x90

'Algorithm > 백준' 카테고리의 다른 글

백준 8958번: OX퀴즈  (0) 2021.08.31
백준 3052번: 나머지  (0) 2021.08.31
백준 11399번: ATM (java)  (0) 2021.08.24
백준 2798번: 블랙잭 (java)  (0) 2021.08.24
백준 1592번: 영식이와 친구들 (java)  (0) 2021.08.22