정렬 알고리즘
Q
11650번: 좌표 정렬하기
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
www.acmicpc.net
A
sort()를 사용하여 풀었다. 입력받는 것만 잘 처리하면 어렵지 않은 문제이다.
코드
n = int(input())
array = [0] * n
for i in range(n): #여러 데이터의 여러 줄 입력받기
array[i] = list(map(int, input().split()))
array.sort() #x좌표 순으로 오름차순 정렬
for i in range(n - 1):
if array[i][0] == array[i+1][0] and array[i][1] > array[i+1][1]: #x좌표가 같을 경우, y좌표 순으로 정렬하기 위하여.
array[i], array[i+1] = array[i+1], array[i] #swap
for i in range(n):
print(array[i][0], array[i][1]) #각 좌표마다 출력