알고리즘/BOJ

[BOJ / 백준] 2669번 직사각형 네개의 합집합의 면적 구하기 python / 파이썬 2차원 배열 구현

seohmoon 2022. 7. 2. 23:12

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

 

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

평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으

www.acmicpc.net


최대 범위인 모든 숫자가 0인 2차원 배열을 만들어주고 

각 사각형의 범위에 해당되는 숫자는 1로 바꿔준다.

그리고 마지막에 1의 개수를 셌다.

# BOJ2669 직사각형 네개의 합집합의 면접 구하기

arr = [list([0]*101) for _ in range(101)]

for _ in range(4):
    x1, y1, x2, y2 = map(int, input().split())
    for i in range(x1,x2):
        for j in range(y1, y2):
            arr[i][j] = 1

cnt = 0
for a in range(101):
    for b in range(101):
        if arr[a][b] == 1:
            cnt += 1

print(cnt)