반응형
<풀이 1>
N = int(input())
coordinates = []
for _ in range(N):
coordinates.append(list(map(int, input().split())))
# key=lambda를 이용해서 정렬할 기준을 x[1] 그리고 x[0]으로 잡음
coordinates.sort(key=lambda x: (x[1], x[0]))
for co in coordinates:
print(co[0], co[1])
sort함수의 key인자를 이용해 lambda로 정렬할 기준을 잡는 방법이다.
<풀이 2>
N = int(input())
coordinates = []
for _ in range(N):
a, b = map(int, input().split())
coordinates.append([b, a])
coordinates.sort()
for co in coordinates:
print(co[1], co[0])
생각을 뒤집어 (x, y) 이던 것을 (y, x)로 한 뒤 sort함수를 이용해서 정렬하는 것이다.
그리고 출력할 때는 거꾸로 co[1], co[0]으로 출력하면 된다.
<핵심 정리>
1. 리스트안의 리스트들을 sort() 함수로 정렬하면 리스트 안의 인덱스 0을 먼저 기준으로 잡고, 인덱스1, 2, ... 순으로 기준이 되어 정렬이 저절로 된다.
2. sort(key=lambda x: )로 정렬할 기준을 설정할 수 있다.
3. print할 때 콤마(,)로 값을 나누어 출력하면 한칸의 공백을 갖고 출력된다.
반응형
'Base > Algorithm Study' 카테고리의 다른 글
[Python/파이썬] 백준 알고리즘 18870번 - 좌표 압축 (0) | 2021.08.20 |
---|---|
[Python/파이썬] 백준 알고리즘 1181번 - 단어 정렬 (0) | 2021.08.20 |
[Python/파이썬] 정렬 알고리즘 정리 1 (삽입 정렬, 선택 정렬, 거품 정렬 / Insertion sort, Selection sort, Bubble sort) (백준 알고리즘 2750번 - 수 정렬하기) (0) | 2021.08.17 |
[Python/파이썬] 백준 알고리즘 7568번 - 덩치 (2) | 2021.08.17 |
[Python/파이썬] 백준 알고리즘 1929번 - 소수 구하기 (0) | 2021.08.17 |