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

Updated:

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


한 번 방문한 적이 있는 좌표는 면적 계산에서 제외하면 된다.

visit 배열을 이용해 해당 인덱스의 값을 방문한 경우 1로 바꾸어 주면 된다.

그렇게 되면 여러 번 방문을 해도 어차피 1 이기 때문에 계산할 수 있다.

처음엔 visit 리스트를 이용해 방문 좌표 자체를 다루었는데 배열을 사용하면 시간 단축이 훨씬 많이 된다.


if __name__ == '__main__':
	area = 0
	visit = [[0] * 101 for _ in range(101)]
	data = [list(map(int, input().rsplit())) for _ in range(4)]

	for square_coord in data:
		left_x, left_y, right_x, right_y = square_coord

		for x in range(left_x, right_x):
			for y in range(left_y, right_y):
				visit[x][y] = 1

	print(sum(sum(visit, [])))



Categories:

Updated:

Leave a comment