문제 보기: https://www.acmicpc.net/problem/11651
문제
2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
출력
첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.
풀이 과정
1 x, y를 입력 받는다 이것을 y가 먼저 오도록 배열에 추가 sort 함수로 정렬한다.
2. 출력은 y, x 좌표로 입력된 배열을 순서만 바꿔서 출력해준다.
코드
import sys
n = int(input())
array = []
for i in range(n):
x, y = list(map(int, sys.stdin.readline().split()))
array.append([y, x])
array.sort()
for i in range(n):
print(array[i][1], array[i][0])
'Algorithm' 카테고리의 다른 글
[백준_10828] 스택 (0) | 2022.04.28 |
---|---|
[백준_11729] 하노이 탑 이동 순서 (0) | 2022.04.27 |
[백준_10250] ACM 호텔 (0) | 2022.04.26 |
[백준_1929] 소수 구하기 (0) | 2022.04.25 |
[백준_1037] 약수 (0) | 2022.04.25 |