문제 링크 : https://www.acmicpc.net/problem/11651
풀이
11650번 문제와 정렬 순서가 바뀌었을 뿐, 동일한 정렬 문제로 볼 수 있다.
sort() 함수에 key로 lambda 함수를 넘겨주게 되면, 이 함수의 반환값을 기준으로 순서대로 정렬하게 된다.
여기서는 x[1], x[0] 순으로, 즉 리스트의 두번째 요소인 y좌표로 정렬 후에 첫번째 요소인 x좌표를 기준으로 정렬하게 되는 것이다.
import sys
num = int(sys.stdin.readline())
xys = []
for _ in range(num):
xy = list(map(int, sys.stdin.readline().split()))
xys.append(xy)
for x, y in sorted(xys, key=lambda x: (x[1], x[0])): # 리스트의 두번째 element인 y좌표를 기준으로 정렬 후 첫번째 element인 x좌표를 기준으로 정렬
print(x, y)
'알고리즘 > 알고리즘 문제 풀이' 카테고리의 다른 글
(Python) 백준 1018번 - 체스판 다시 칠하기 (0) | 2023.01.02 |
---|---|
(Python) 백준 11866번 - 요세푸스 문제 0 (0) | 2022.12.31 |
(Python) 백준 11650번 - 좌표 정렬하기 (0) | 2022.12.30 |
(Python) 백준 10814번 - 나이순 정렬 (0) | 2022.12.30 |
(Python) 백준 7568번 - 덩치 (0) | 2022.12.28 |