[BOJ][Python]직사각형 네개의 합집합의 면적 구하기

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

📌풀이


내가 쓴 풀이(성공)

grid = [[0 for _ in range(100)] for _ in range(100)]
for _ in range(4):
    x1, y1, x2, y2 = map(int, input().split())
    for index_y in range(y1,y2):
        for index_x in range(x1,x2):
            grid[index_y][index_x] = 1
            
result = 0
for index in range(100):
    result += sum(grid[index])
print(result)

좌표평면을 기준으로 생각하여 코드를 구현하였습니다.(생각해보면 불필요한 부분인 것 같습니다)

grid라는 좌표평면을 표현하기 위한 리스트를 만들고, 모든 값을 0으로 설정하였습니다.

( grid[0][0] : 왼쪽 아래 좌표가 (0, 0)인 길이가 1인 정사각형 이라고 생각)

각각의 직사각형의 왼쪽 아래 좌표와 왼쪽 위 좌표를 받아오고,

for문을 활용하여 좌표평면 안에서 직사각형에 해당하는 부분의 값을 1로 바꿔주었습니다.

이후, 좌표평면 안에서 sum 을 통해 바뀐 모든 값을 더해 직사각형들이 차지하는 면적을 구하였습니다.

📌후기


성공하긴 했지만, 아쉬운 코드..!

좋은 웹페이지 즐겨찾기