알고리즘/백준저지

백준저지 2669번 직사각형 네개의 합집합의 면적 구하기

anott 2021. 8. 30. 23:10

출처: https://www.acmicpc.net/problem/2669

 

2669번: 직사각형 네개의 합집합의 면적 구하기

입력은 네 줄이며, 각 줄은 직사각형의 위치를 나타내는 네 개의 정수로 주어진다. 첫 번째와 두 번째의 정수는 사각형의 왼쪽 아래 꼭짓점의 x좌표, y좌표이고 세 번째와 네 번째의 정수는 사각

www.acmicpc.net

 

 

 

생각

백준저지 2563번 색종이 문제(https://www.acmicpc.net/problem/2563)와 동일하게 풀었다.

 

 

 

코드

// 출처: 백준저지 2669번 직사각형 네개의 합집합의 면적 구하기 https://www.acmicpc.net/problem/2669

import java.util.Scanner;

public class Main {

    static int[][] map = new int[101][101];

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < 4; i++) {
            int x1 = sc.nextInt();
            int y1 = sc.nextInt();
            int x2 = sc.nextInt();
            int y2 = sc.nextInt();
            colorMap(x1, y1, x2, y2);
        }

        int answer = 0;
        for (int i = 0; i < 101; i++) {
            for (int j = 0; j < 101; j++) {
                answer = answer + map[i][j];
            }
        }
        System.out.println(answer);
    }

    private static void colorMap(int x1, int y1, int x2, int y2) {
        for (int i = x1; i < x2; i++) {
            for (int j = y1; j < y2; j++) {
                map[i][j] = 1;
            }
        }
    }
}