본문 바로가기
알고리즘/[python] 백준 BOJ

[python] 백준 9063 대지

by Alan_Kim 2023. 11. 16.
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
반응형

댓글