[Python] 11650번 좌표 정렬하기

이세령·2023년 5월 28일
0

알고리즘

목록 보기
16/43

문제

https://www.acmicpc.net/problem/11650

풀이과정

  • N개의 좌표
  • x 좌표 오름차순
  • 같으면 → y좌표 오름차순

어쩌피 sort를 사용하면 앞에걸 기준으로 정렬하니까 괜찮지 않을까? 싶어 시도해보았다.

n = int(input())
result = []
for _ in range(n):
    result.append(input().split())

result.sort()

for i in range(n):
    print(int(result[i][0]), int(result[i][1]))
  • 결과는 제대로 나오지만 틀렸다고 나왔다.
    정확하게 판단해주면 잘못 정렬된 부분을 수정할 수 있을 것이라 생각했다.
    다른 방법을 생각해보다가 sort에서 매개변수를 기준으로 정렬해주는 것이 있으면 편할 것 같다고 생각하여 찾아보니 key 매개변수로 요소에 대하여 적용되는 함수를 지정해줄 수 있었다.

정답

import sys

n = int(input())
result = []
for _ in range(n):
    result.append(sys.stdin.readline().rstrip().split())

result.sort(key=lambda x: (int(x[0]), int(x[1])))  
# x를 먼저 기준으로, 다음은 y를 기준으로

for i in range(n):
    print(int(result[i][0]), int(result[i][1]))

메모리: 74564KB
시간: 424ms

profile
https://github.com/Hediar?tab=repositories

0개의 댓글