h2>🔒 문제
2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.
⌨ 입력
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
🖨 출력
첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.
📚 예제
Ex1)
5
0 4
1 2
1 -1
2 2
3 3
1 -1
1 2
2 2
3 3
0 4
📌 풀이
파이썬 sorted 함수에서 정렬할때 고려할 것의 우선순위를 정할 수 있어서 그것을 사용해서 문제를 풀었다.
key 인자에 함수를 넘겨주면 우선순위가 정해진다.
리스트2 = sorted(리스트1, key = lambda x : 우선순위1, 우선순위2)
우선 순위에 -을 붙이면 현재와 반대 차순으로 정렬
🔑 python 코드
import sys
N = int(sys.stdin.readline())
ary = []
for i in range(N):
ary.append([int(x) for x in sys.stdin.readline().split()])
ans = sorted(ary,key = lambda x:(x[1],x[0])) # sorting 할 때 우선순위 지정
for i in range(N):
print(ans[i][0],ans[i][1])
'BAEKJOON > 단계별로 풀어보기' 카테고리의 다른 글
[BOJ] 10814번 : 나이순 정렬 (0) | 2022.09.07 |
---|---|
[BOJ] 1181번 : 단어 정렬 (0) | 2022.09.07 |
[BOJ] 11650번 : 좌표 정렬하기 (0) | 2022.09.06 |
[BOJ] 2108번 : 통계학 (0) | 2022.09.05 |
[BOJ] 10989번 : 수 정렬하기3 (0) | 2022.09.04 |