n = int(input())
a = [[0] * 2 for i in range(n)]
for i in range(n):
a[i][0], a[i][1] = map(int,input().split())
a.sort(key=lambda x: (x[0], x[1]))
for i in range(len(a)):
print(a[i][0], a[i][1])
코드 설명
이중 리스트를 점의 개수만큼 초기화 하고 하나의 리스트 당 2개의 원소를 갖도록 초기화 한다. 반복문을 통하여 리스트에 값을 넣어준다.
sort() 함수의 key 값으로 lambda 를 이용하여 리스트의 0번째 인덱스를 기준으로 정렬한 후, 그 다음 정렬은 1번째 인덱스를 기준으로 정렬한다.
Point : sort() 함수를 이용시 정렬 기준을 2개로 설정하여, x좌표가 같을 시 y좌표가 증가하는 순으로 정렬하여야 한다.
import sys
n = int(sys.stdin.readline())
a = [[0] * 2 for i in range(n)]
for i in range(n):
a[i][0], a[i][1] = map(int,sys.stdin.readline().split())
a.sort(key=lambda x: (x[1], x[0]))
for i in range(len(a)):
print(a[i][0], a[i][1])
코드 설명
기본적으로는 11650 문제와 동일하다. 정렬 기준 인덱스를 1을 우선으로 하고 그 다음을 0으로 설정하였다.
Point : 정렬 기준을 1 인덱스를 우선, 그 다음 0 인덱스를 기준으로 잡는다.
728x90
'SW개발 > 코딩테스트' 카테고리의 다른 글
[백준]10814번 나이순 정렬 - 정렬 (0) | 2020.12.06 |
---|---|
[백준]1181번 단어 정렬 - 정렬 (0) | 2020.12.05 |
[백준]1427번 소트인사이드 - 정렬 (0) | 2020.12.03 |
[백준]2108번 통계학 - 정렬 (0) | 2020.12.02 |
[백준]10989번 수 정렬하기 3 - 정렬 (0) | 2020.12.01 |