백준 11651 좌표 정렬하기 2 (파이썬)


11651 좌표 정렬하기 2 문제 바로가기


접근방식

  • y 좌표를 토대로 정렬을 해야하고 y 좌표가 같다면 x 좌표를 비교해야하는 문제이다.
  • sort()함수에 key를 사용하여 조건에 맞춰 정렬하였다. (자세한 설명은 코드 주석에 적어두었다.)

파이썬 코드

import sys

n = int(sys.stdin.readline())
coordinates = []

for _ in range(n):
    x, y = map(int, sys.stdin.readline().split())
    coordinates.append([x, y])
# key부분에서 xy[1]은 y, xy[0]은 x를 의미한다.
# xy[1] 즉 y를 기준으로 오름차순 정렬하고 y가 같다면 그 다음 순위로는 xy[0]인 x로 오름차순 정렬한다는 코드이다.
# 만약 y로 오름차순 정렬하고 그 다음 순위로 x를 내림차순 정렬을 하고싶다면 key=lambda xy:(xy[1],-xy[0]) 이렇게 마이너스를 앞에 붙여주면 된다!
coordinates.sort(key=lambda xy:(xy[1],xy[0]))

for xy in coordinates:
    print(xy[0],xy[1])





© 2020.09. by 다로

Powered by theorydb