[파이썬] 백준 11650번 좌표 정렬하기

우디·2021년 12월 13일

알고리즘

목록 보기
6/8
post-thumbnail

1. 좌표 정렬하기

1. 문제 설명

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

2. 입력

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

3. 출력

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

4. 입출력 예제

2. 나의 풀이

import sys
n = int(input())

coordinate = []
for i in range(n):
    xy = sys.stdin.readline().split()
    coordinate.append((int(xy[0]), int(xy[1])))
    
coordinate.sort(key=lambda n: (n[0], n[1]))

for k in coordinate:
    print(k[0], k[1])

정렬 알고리즘을 사용하여 문제를 해결했다
입력 받은 값을 튜플 형태로 배열에 저장한 후,
sort 함수에 lambda 를 이용해 key를 지정 해 주었다
n[0] 를 기준으로 정렬 한 후, 같다면 n[1] 을 기준으로 정렬

profile
계정 이전했습니다 https://velog.io/@rjw0907/posts

0개의 댓글