Python/백준

11650_좌표 정렬하기

728x90

문제는 더보기!

 

더보기

문제

2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.

입력

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

출력

첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.

예제 입력 1 복사

5
3 4
1 1
1 -1
2 2
3 3

예제 출력 1 복사

1 -1
1 1
2 2
3 3
3 4

헛짓거리 장인(?) 답게 어떻게 할까.. 고민하다가 처음에는 딕셔너리를 써보려고 했다. 근데 딕셔너리는 중복된 키값이 들어오면 덮어써지는 방식이라 다른 효과적인 방법이 있을것 같다가 문득 그냥 이중리스트도 sort()로 정렬하면 알아서 해주지 않을까? 라는 생각에 해봤더니.. 되었다. 파이썬은 참 좋은 언어 같다.

 

import sys
N = int(sys.stdin.readline())
lst=[]
for _ in range(N):
    a,b = map(int,sys.stdin.readline().split())
    lst.append([a,b])

lst.sort()

for i in lst:
    print(i[0],i[1])
728x90

'Python > 백준' 카테고리의 다른 글

1181_단어 정렬  (0) 2021.12.05
11651_좌표 정렬하기2  (0) 2021.12.04
1427_소트인사이드  (0) 2021.12.03
2108_통계학  (0) 2021.12.01
10989_수 정렬하기 3  (0) 2021.11.30