n개의 2차원 좌표를 y-좌표 오름차순, x-좌표 오름차순으로 정렬하는 문제이다.
sort() 메서드와 람다 함수를 통해 쉽게 풀 수 있다.
코드는 다음과 같다.
# 11651
import sys
n = int(sys.stdin.readline())
points = []
for _ in range(n):
points.append(list(map(int, sys.stdin.readline().split())))
# 좌표 정렬(y-좌표 오름차순 및 x-좌표 오름차순)
points.sort(key=lambda point: (point[1], point[0]))
for i in range(n):
print(points[i][0], points[i][1])
다른 풀이, chatGPT를 참고하는 과정에서 정렬된 좌표를 출력할 때 반복 변수 i를 쓰지 않아도 되는 for문 사용 방법을 알게 되었다.
for i in range(n):
print(points[i][0], points[i][1])
for x, y in points:
print(x, y)