반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
직사각형 네개의 합집합의 면적을 구하는 문제입니다.
2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학
단순히 입력된 4개의 직사각형 넓이를 구하는 건 쉽지만, 겹쳐진 부분의 넓이를 구하긴 어렵습니다. 따라서 직사각형의 영역을 1*1 정사각형으로 좌표화해서 표시했습니다.
3. 코드
import sys
input = sys.stdin.readline
# 입력
board = [[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):
board[i][j] = 1
# 출력
res = 0
for i in board:
res += sum(i)
print(res)
겹쳐진 부분을 일일이 계산하기가 힘들기 때문에, 아예 100 * 100 보드판을 만들어서 직사각형의 영역을 표시했습니다. 위와 같이 표시하면, 직사각형이 겹쳐져도 중복해서 넓이를 계산하지 않습니다.
반응형
'Algorithm' 카테고리의 다른 글
[탐색/BFS] 백준 2468 안전 영역 - 파이썬(Python) (0) | 2022.07.03 |
---|---|
[Brute Force] 백준 1120 문자열 - 파이썬(Python) (0) | 2022.07.02 |
[동적계획법/DP] 백준 9184 신나는 함수 실행 - 파이썬(Python) (0) | 2022.06.30 |
[탐색/다익스트라] 백준 18352 특정 거리의 도시 찾기 - 파이썬(Python) (0) | 2022.06.29 |
[그리디/Greedy] 백준 2847 게임을 만든 동준이 - 파이썬(Python) (0) | 2022.06.28 |
댓글