알고리즘

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

아람2 2024. 12. 3. 10:29
반응형

1. 문제

2차원 평면 위의 점 N개를 y좌표 오름차순 기준으로 정렬하는 문제

2. 제한

시간 제한 1초
메모리 제한 256MB

3. 알고리즘 분류

* 정렬 

4. 접근 방식

x 좌표 기준 정렬은 points.sort() 를 사용하면 돼서 간단했는데,

y 기준은 아직 친하지 않은 lambda 를 활용해 보았다 

좌표를 튜플로 입력 받아 리스트에 append 하여 저장하고 

(x, y) == (point[0], point[1]) 로 두고 point 를 key 로 정렬하여 출력하였다 

5. 전체 코드 

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

# 2차원 평면 위의 점 N개를 y좌표 오름차순 기준으로 정렬하는 문제 

n = int(input().strip())
points = [] # 입력된 좌표를 저장할 리스트 

for i in range(n):
    x, y = map(int, input().split())
    points.append((x, y)) # 튜플 형태로 저장 

# y 기준으로 오름차순 정렬, y 가 같으면 x 기준 정렬 
points.sort(key=lambda point: (point[1], point[0])) 

# 정렬된 좌표 출력 
for x, y in points: 
    print(x, y)

 

반응형