[문제]

https://www.acmicpc.net/problem/11650

 

11650번: 좌표 정렬하기

첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.

www.acmicpc.net



[풀이]

차례대로 주어지는 좌표를 리스트 형식으로 coordinate 리스트에 넣는다. (이중 리스트로 저장됨)

lambda를 이용해 sort 기준을 정해준다. 문제에서는 x좌표가 같으면 y좌표가 증가하는 순서로 정렬해야 하기 때문에 다중 조건을 사용했다.

 

우선 첫 번째 인자인 x[0]을 기준으로 정렬하고 만약 x[0]이 같을 경우 두 번째 인자인 x[1]을 비교해 정렬하게 된다.

 


[코드]

import sys


if __name__ == '__main__':
    n = int(sys.stdin.readline())
    coordinate = [list(map(int, sys.stdin.readline().split())) for _ in range(n)]
    coordinate.sort(key=lambda x: (x[0], x[1]))
    for i in coordinate:
        print(i[0], i[1])