반응형
[ Contents ]
1. 문제 (링크 참조)
2669번: 직사각형 네개의 합집합의 면적 구하기
평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으
www.acmicpc.net
2. 문제 풀이
직사각형 네개의 합집합의 면적을 구하는 문제입니다.
2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학
[Algorithm] 단골 1번 문제, 구현 / 수학
[ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하
star7sss.tistory.com
단순히 입력된 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 |
댓글