Adventure Time - Jake [백준/python] 9063 대지:
본문 바로가기
Back-end/백준(python)

[백준/python] 9063 대지:

by bogyoi 2023. 10. 26.

예를 들어 위와 같이 (2, 1), (3, 2), (5, 2), (3, 4) 네 점에서 옥구슬을 발견하였다면, 임씨에게 돌아갈 대지는 (2, 1), (5, 1), (2, 4), (5, 4)를 네 꼭짓점으로 하는 직사각형이며, 넓이는 (5 - 2) × (4 - 1) = 9 가 된다.

입력


첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다.

출력


첫째 줄에 N 개의 점을 둘러싸는 최소 크기의 직사각형의 넓이를 출력하시오.

예제 입력 1


 
3
20 24
40 21
10 12

 

예제 출력 1


 
360

 

예제 입력 2

1
15 13

 

예제 출력 2

 
 
0

 

예제 입력 3


 
4
2 1
3 2
5 2
3 4

 

 

N=int(input())
x_min=10000; y_min=10000
x_max=-10000; y_max=-10000

for _ in range(N):
  x,y=map(int, input().split())
  if (x<x_min):
    x_min=x
  if (x>x_max):
    x_max=x
  if (y<y_min):
    y_min=y
  if (y>y_max):
    y_max=y

print((x_max-x_min)*(y_max-y_min))
 

1트 성공 ㅇㅇ

 

import sys

input = sys.stdin.readline
x_lst = []
y_lst = []
for _ in range(int(input())) :
    x, y = map(int, input().split())
    x_lst.append(x)
    y_lst.append(y)
print((max(x_lst) - min(x_lst)) * (max(y_lst) - min(y_lst)))
 

이건 다른 사람 코드다

나는 더 작은 값 또는 더 큰 값이 나올때마다 min,max값을 직접 업데이트 해주는 방식이었는데

append함수로 먼저 리스트에 입력받은 x좌표와 y좌표를 다 저장해준다음,

거기서 min(), max()함수 이용해서 list에서 min,max값을 뽑아내주는 방식이다.

파이썬에서 제공해주는 함수를 이렇게 적절히 이용하는 것도 좋은 것 같다