알고리즘/[python] 백준 BOJ
[python] 백준 9063 대지
Alan_Kim
2023. 11. 16. 11:32
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
반응형