Input
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다.
둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
1 | import sys |
Sort
sort
함수에 key
를 이용하면 쉽게 해결되는데, 이를 위해서 sort
함수를 살펴보자.
sort()
Basic Syntax
1 list.sort(key=..., reverse=...)Parameters
key
: sort 수행 시 비교 를 위해 적용되는 함수
e.g. 1D
1 list.sort(key=len)
len
함수에 따라 리스트의 요소의 길이가 정렬 기준이 된다.e.g. 2D
tuple의 경우, 첫번째 파라미터가 디폴트로 정렬 기준이 된다.
1
2
3
4
5
6
7
8
9
10 # random list
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
# sort list with key
random.sort(key=(lambda x: x[1]))
### lambda to function declaration
# key=takeSecond
# def takeSecond(elem):
# return elem[1]위의 예시에서는, 튜플
x
의 2번째 파라미터를 기준으로 정렬을 수행한다.
reverse
: 기본 오름차순,True
시 내림차순Return Value
None
👉 원본을 수정한다.sorted()
sorted list
👉 원본을 수정하지 않고, 새로운 리스트를 반환한다.
위에 따라 key
를 지정해서 sort
함수를 커스터마이징하면,
1 | s.sort(key=(lambda x: (x[0], x[1]))) |
이는 즉, 튜플 x
의 1번째 인자를 첫 기준으로 두고, 2번째 인자를 두번째 기준으로 둔다 는 의미이다.
Output
첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.
1 | for i in s: |