728x90
반응형
https://www.acmicpc.net/problem/9063
9063번: 대지
첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다.
www.acmicpc.net
문제 해결
- 브론즈 기하문제인 만큼 극히 제한적인 조건( 남북, 동서 방향으로 평행한 직사각형 모양)이 붙었다.
- 따라서 X축과 Y축으로 나누어 각 점들의 좌표를 보고 가장 큰 X좌표, 가장 작은 X좌표, 가장 큰 Y좌표 가장 작은 Y좌표를 가져와서 (가장 큰 X좌표-가장 작은 X좌표) * (가장 큰 Y좌표 - 가장 작은 Y좌표)를 구하면 된다.
CODE
import sys
input = sys.stdin.readline
INF = sys.maxsize
def solution():
n = int(input())
min_x, min_y = 10000, 10000
max_x, max_y = -10000, -10000
for _ in range(n):
x, y= map(int, input().split())
min_x = min(min_x,x)
max_x = max(max_x, x)
min_y = min(min_y, y)
max_y = max(max_y,y)
answer = (max_y-min_y)*(max_x-min_x)
return answer
if __name__=='__main__':
answer = solution()
print(answer)
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 18808 스티커 붙이기 (0) | 2023.11.18 |
---|---|
[python] 백준 14215 세 막대 (0) | 2023.11.17 |
[python] 백준 11664 선분과 점 (0) | 2023.11.15 |
[python] 백준 1039 교환 (0) | 2023.11.14 |
[python] 백준 3584 가장 가까운 공통 조상 (0) | 2023.11.13 |
댓글