11651번: 좌표 정렬하기 2
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
www.acmicpc.net
이전의 두 개의 정렬 조건을 이용해서 풀었던 문제와 유사한 문제이다.
이 문제에서는 두 조건의 우선 순위를 바꾸었다.
y를 기준으로 먼저 정렬하고 동일하다면 x를 기준으로 정렬한다.
입력은 x, y 순이기 때문에
정렬하는 sort()함수의 key 파라미터의 순서만 변경해주면 된다.
만약 파이썬이 아닌 다른 언어였다면 아마 생각할 점과 수정해야될 부분들이 더 많았을 것이다.
그러나 파이썬에서는 단순하게 조건의 우선 순위만 변경해주면 된다.
[소스 코드]
import sys
n = int(sys.stdin.readline().rstrip())
data = []
for i in range(n):
data.append(tuple(map(int, sys.stdin.readline().rstrip().split())))
data.sort(key=lambda e : (e[1], e[0]))
for i in range(n):
for j in range(2):
if j == 0:
print(data[i][j], end=' ')
else:
print(data[i][j])
[백준] 10814번 - 나이순 정렬 (정렬) - 결과 포함 (0) | 2021.02.02 |
---|---|
[백준] 1181번 - 단어 정렬 (정렬) - 결과 포함 (0) | 2021.02.02 |
[백준] 11650 - 좌표 정렬하기 (정렬) - 결과 포함 (0) | 2021.02.02 |
[백준] 1427번 - 소트인사이드 (정렬) - 결과 포함 (0) | 2021.02.02 |
[백준] 2108번 - 통계학 (정렬) - 결과 포함 (0) | 2021.02.02 |