본문 바로가기

알고리즘

백준 11651번 좌표 정렬하기2 [파이썬]

https://www.acmicpc.net/problem/11651

 

11651번: 좌표 정렬하기 2

첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.

www.acmicpc.net

n = int(input())
list = []
for _ in range(n):
    x,y = map(int,input().split())
    list.append((x,y))
list.sort(key = lambda x: (x[1], x[0]))
for i in list:
    print(*i)

입력받은 x와 y를 list에 append 해준다

문제에서 y가 증가하는 순, y가 같다면 x가 증가하는 순으로 출력 하라고 했기 때문에

sort에서 x[1] 즉 y, x[0] -> x 순으로 정렬 되게 해주었다

정렬이 된 list를 한줄씩 출력하기 위해 for문을 사용하였고

괄호 없이 출력하기 위해 *i 를 사용하였다