Joon's Space
[Python] 백준 알고리즘 #11651 좌표 정렬하기 2 본문
문제풀이
① 좌표를 y좌표가 증가하는 순으로,
② y좌표가 같으면 x좌표가 증가하는 순서로 정렬
정렬하는 기준이 2가지인 정렬이다. 이와 같은 경우에는 key= 파라미터를 이용한다.
key 파라미터는 함수를 받는 파라미터이기에 람다식을 이용할 수 있다.
이 문제에서는 y좌표가 큰 값부터 정렬하고 같다면 x좌표가 큰 순으로 정렬해야 한다.
이와 같이 2가지 정렬 조건이라면 우선순위순으로 기준을 왼쪽부터 나열해준다.
key 함수의 리턴 값이 (첫번째 기준, 두 번째 기준) 형식의 튜플이 오면 된다.
ex) sorted(list, key=lambda x:(x[1], x[0]) # x[0]=x 좌표, x[1]=y좌표이기 때문
소스코드
import sys
input = sys.stdin.readline
N = int(input())
result = []
for i in range(N):
x,y = map(int, input().split())
result.append([x,y])
result = sorted(result, key=lambda x:(x[1],x[0]))
for i in result:
print(i[0], i[1])
반응형
'Algorithm > baekjoon' 카테고리의 다른 글
[Python] 백준 알고리즘 #2108 통계학 (0) | 2021.01.18 |
---|---|
[Python] 백준 알고리즘 #2839 설탕 배달 (0) | 2021.01.18 |
[Python] 백준 알고리즘 #10989 수 정렬하기 3 (0) | 2021.01.15 |
[Python] 백준 알고리즘 #7568 덩치 (0) | 2021.01.15 |
[Python] 백준 알고리즘 #1436 영화감독 숌 (0) | 2021.01.15 |