반갑습니다!

[백준] 2669 직사각형 네개의 합집합의 면적 구하기 본문

알고리즘 문제 풀이

[백준] 2669 직사각형 네개의 합집합의 면적 구하기

김덜덜이 2020. 9. 16. 01:32

풀이

여러 개의 사각형이 겹쳐질 수 있기 때문에 100 x 100 bool 배열을 생성해서 사각형 범위만큼 true로 바꿔준 뒤, 총 true의 갯수를 세는 방식으로 해결했다.

코드

#include <iostream>
using namespace std;

bool board[101][101];

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    for (int t = 0; t < 4; t++) {
        int x1, y1, x2, y2;
        cin >> x1 >> y1 >> x2 >> y2;
        for (int i = y1; i < y2; i++)
            for (int j = x1; j < x2; j++)
                board[i][j] = true;
    }

    int answer = 0;
    for (int i = 0; i <= 100; i++) {
        for (int j = 0; j <= 100; j++)
            if (board[i][j]) answer++;
    }
    cout << answer << '\n';
    return 0;
}

'알고리즘 문제 풀이' 카테고리의 다른 글

[백준] 2605 줄 세우기  (0) 2020.09.17
[백준] 16486 운동장 한 바퀴  (0) 2020.09.17
[백준] 1495 기타리스트  (0) 2020.09.14
[백준] 2740 행렬 곱셈  (0) 2020.09.13
[백준] 9656 돌 게임 2  (0) 2020.09.12