문제

Mahima has been experimenting with a new style of art. She stands in front of a canvas and, using her brush, flicks drops of paint onto the canvas. When she thinks she has created a masterpiece, she uses her 3D printer to print a frame to surround the canvas.

Your job is to help Mahima by determining the coordinates of the smallest possible rectangular frame such that each drop of paint lies inside the frame. Points on the frame are not considered inside the frame.

 

입력

The first line of input contains the number of drops of paint, N, where 2 ≤ N ≤ 100 and N is an integer. Each of the next N lines contain exactly two positive integers X and Y separated by one comma (no spaces). Each of these pairs of integers represents the coordinates of a drop of paint on the canvas. Assume that X < 100 and Y < 100, and that there will be at least two distinct points. The coordinates (0, 0) represent the bottom-left corner of the canvas.

 

출력

Output two lines. Each line must contain exactly two non-negative integers separated by a single comma (no spaces). The first line represents the coordinates of the bottom-left corner of the rectangular frame. The second line represents the coordinates of the top-right corner of the rectangular frame.


코드

import sys

if __name__ == '__main__':
    N = int(sys.stdin.readline().rstrip())

    x_coordinates = []
    y_coordinates = []

    for i in range(N):
        x,y = map(int, sys.stdin.readline().rstrip().split(","))
        x_coordinates.append(x)
        y_coordinates.append(y)
    
    print(min(x_coordinates)-1,min(y_coordinates)-1, sep=",")
    print(max(x_coordinates)+1,max(y_coordinates)+1, sep=",")

 

풀이

각 점을 포함하는 프레임의 왼쪽 아래와 오른쪽 위 좌표를 구하는 것이므로, 왼쪽 아래와 오른쪽 위 프레임의 위치가 어디가 될지 생각해보면 된다. 프레임의 왼쪽 아래의 x, y 좌표는 분포하는 점 중에서 가장 작은 x와 가장 작은 y와 같을 것이다. 이때, 프레임이 점 밖에 있어야 하기 때문에, (가장 작은 x-1, 가장 작은 y-1)이 왼쪽 아래의 좌표가 된다.

오른쪽 위는 위가 같은 방법으로 (가장 큰 x+1, 가장 작은 y+1) 가 될 것이다.

 

728x90

'Algorithm > 백준' 카테고리의 다른 글

[백준][Python] 7360. Undercut  (0) 2022.04.30
[백준][Java] 1912. 연속합  (0) 2022.04.28
[백준][Java] 17548. Greetings!  (0) 2022.04.25
[백준][Java] 1934. 최소공배수  (0) 2022.04.17
[백준][Java] 2579. 계단 오르기  (0) 2022.04.13

+ Recent posts