유형 : 정렬
[예제]
5
3 4
1 1
1 -1
2 2
3 3
[출력]
1 -1
1 1
2 2
3 3
3 4
1. 내 풀이
N = int(input())
num_list = []
for i in range(N):
num1, num2 = input().split(' ')
num1 = int(num1)
num2 = int(num2)
num_list.append([])
num_list[i].append(num1)
num_list[i].append(num2)
num_list = sorted(num_list)
for i in range(N):
print(num_list[i][0],num_list[i][1])
▷ 2차원 리스트로 만드는 게 핵심이다.
▷ x좌표, y좌표를 하나의 리스트에 담고, 기본 정렬 라이브러리인 sorted()를 이용하였다.
▷ 참고한 블로그 : 23.1 2차원 리스트를 만들고 요소에 접근하기 中 톱니형 리스트
2. 다른 풀이
출처 : 패스트캠퍼스 - 알고리즘 / 기술면접 완전 정복 올인원 패키지 Online
** 핵심 아이디어
1. (x좌표, y좌표)를 입력받은 후 x좌표, y좌표 순서대로 오름차순 정렬
2. 파이썬의 기본 정렬 라이브러리는 기본적으로 튜플의 인덱스 순서대로 오름차순 정렬
3. 따라서 단순히 기본 정렬 라이브러리를 이용(key 속성 설정 없이)
n = int(input())
array = []
for _ in range(n):
x,y = map(int, input().split(' '))
array.append((x,y))
array = sorted(array)
for i in array:
print(i[0],i[1])
문제 출처 : https://www.acmicpc.net/problem/11650
11650번: 좌표 정렬하기
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
www.acmicpc.net
반응형
'Python' 카테고리의 다른 글
[백준] 2747번 : 피보나치 수 (0) | 2022.01.01 |
---|---|
[백준] 10989번 : 수 정렬하기 3 (0) | 2022.01.01 |
[백준] 10814번 : 나이순 정렬 (0) | 2021.12.31 |
[백준] 1427번 : 소트인사이드 (0) | 2021.12.27 |
[백준] 2750번 : 수 정렬하기 (0) | 2021.12.27 |
댓글