2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.
입출력 규칙
1. 입력
- 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
2. 출력- 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.
점 n개의 개수가 주어지고, x좌표와 y좌표가 주어진다.
y좌표가 증가하는 순서이며, y좌표가 같을때 x좌표가 증가하는 순서로 정렬을 하여 출력하는 문제이므로, for문으로 n개의 개수를 받아 반복한다.
그리고 빈배열에 x, y좌표의 반대인 y, x좌표로 append 한 후, sorted 함수를 이용해 배열을 순서대로 정리하여 출력하는 방법으로 접근하면 된다.
import sys
num = int(sys.stdin.readline()) #점의 개수 입력값
array_xy = [] # 빈배열 설정
for i in range(num): #for문을 통해 x, y좌표 받기
x, y = map(int, sys.stdin.readline().split(' '))
array_xy.append([y, x]) #빈배열에 y, x 순으로 추가
sorted_array = sorted(array_xy) # 추가된 배열을 순서대로 정렬
for x, y in sorted_array: # 순서대로 출력
print(y, x)