본문 바로가기
백준

[백준] 9063번 : 대지 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 10. 27.
728x90
반응형

 

9063번: 대지

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

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

해당 문제는 옥구슬을 발견한 지점을 보고 직사각형 모양의 대지 면적을 계산하는 문제이다.
각 x축과 y축 변의 길이는 각 x좌표와 y좌표의 최댓값에서 최솟값을 뺀 값이다.
각 변의 길이를 구한 뒤 곱하여 대지의 면적을 구한다.
 

  1. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
  2. 점의 개수를 입력받는다. N = int(sys.stdin.readline())
  3. 점의 x좌표를 저장할 리스트를 생성한다. xlist = list()
  4. 점의 y좌표를 저장할 리스트를 생성한다. ylist = list()
  5. 점의 개수만큼 반복하며 for _ in range(N)
  6. 점의 x좌표와 y좌표를 입력받고 x, y = map(int, sys.stdin.readline().split())
  7. 각 좌표를 리스트에 추가한다. xlist.append(x)  ylist.append(y)
  8. 직사각형의 x변 길이는 x좌표의 최댓값에서 최솟값을 뺀 값이고 xlen = max(xlist) - min(xlist)
  9. 직사각형의 y변 길이는 y좌표의 최댓값에서 최솟값을 뺀 값이다. ylen = max(ylist) - min(ylist)
  10. 직사각형의 넓이를 출력한다. print(xlen * ylen)
반응형

3. 소스코드

import sys

N = int(sys.stdin.readline())

xlist = list()
ylist = list()
for _ in range(N):
    x, y = map(int, sys.stdin.readline().split())
    xlist.append(x)
    ylist.append(y)
    
xlen = max(xlist) - min(xlist)
ylen = max(ylist) - min(ylist)

print(xlen * ylen)
728x90
반응형