본문 바로가기
개발/코딩테스트

[Python] 백준 11651번 좌표 정렬하기 2 - 정렬

by seopport 2023. 6. 24.
728x90
반응형

백준 코딩테스트 - 융과 함께 Python
백준 코딩테스트 - 융과 함께 Python

 

백준 홈페이지 문제와 개인적인 풀이를 작성한 글입니다.

 

백준 11651번 : 좌표 정렬하기 2

 

11651번: 좌표 정렬하기 2

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

www.acmicpc.net

반응형

 


문제

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

 

입력

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

 

출력 

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

 

예제 입력 1 예제 출력 1
5
0 4
1 2
1 -1
2 2
3 3
1 -1
1 2
2 2
3 3
0 4

내 코드 - 성공

# 좌표 정렬하기 2
# 11651번
# 입력
# 5
# 0 4
# 1 2
# 1 -1
# 2 2
# 3 3

# 출력
# 1 -1
# 1 2
# 2 2
# 3 3
# 0 4

n = int(input());
array = [];

for i in range(n):
  m, k = map(int, input().split());
  array.append((m, k));

array.sort(key = lambda x : (x[1], x[0]));

for i in array:
  print(i[0], i[1]);

 

사실 간단한 정렬 문제입니다.
배열 안에 정렬을 lambda 를 활용할 때 까먹지 않기 위해서 작성을 해두었습니다.

key = lambda x : (x[1], x[0])

 

728x90
반응형