상세 컨텐츠

본문 제목

[백준] 11651번 - 좌표 정렬하기 2 (정렬) - 결과 포함

개발 공부 (알고리즘)

by letprogramming 2021. 2. 2. 02:04

본문

반응형

www.acmicpc.net/problem/11651

 

11651번: 좌표 정렬하기 2

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

www.acmicpc.net

이전의 두 개의 정렬 조건을 이용해서 풀었던 문제와 유사한 문제이다.

이 문제에서는 두 조건의 우선 순위를 바꾸었다.

y를 기준으로 먼저 정렬하고 동일하다면 x를 기준으로 정렬한다.

 

입력은 x, y 순이기 때문에

정렬하는 sort()함수의 key 파라미터의 순서만 변경해주면 된다.

 

만약 파이썬이 아닌 다른 언어였다면 아마 생각할 점과 수정해야될 부분들이 더 많았을 것이다.

그러나 파이썬에서는 단순하게 조건의 우선 순위만 변경해주면 된다.

 

[소스 코드]

import sys

n = int(sys.stdin.readline().rstrip())

data = []

for i in range(n):
    data.append(tuple(map(int, sys.stdin.readline().rstrip().split())))

data.sort(key=lambda e : (e[1], e[0]))

for i in range(n):
    for j in range(2):
        if j == 0:
            print(data[i][j], end=' ')
        else:
            print(data[i][j])
반응형

관련글 더보기