baekjoon 11651

윤동환·2023년 1월 25일
0

Algorithm

목록 보기
40/54
post-thumbnail

좌표 정렬하기 2

성공한 코드

import sys
input = sys.stdin.readline

N = int(input())
x = [0 for _ in range(N)]
for i in range(N):
    temp = list(map(int, input().split()))
    temp[0], temp[1] = temp[1], temp[0] 
    x[i] = temp
x.sort()
for a in x:
    print(a[1], a[0])

고려할 부분

좌표 정렬하기 1과는 다르게 우선 정렬 기준 좌표가 Y좌표여서 sort의 정렬 순서를 바꾸어 주어야 했다.
-> list의 swap 기능을 사용하여 y, x좌표 index를 바꾸어 준뒤 출력또한 바뀐 인덱스에 맞게 출력해주었다.

더 명확하고 좋은 방법

정렬 방법

student_tuples = [
    ('john', 'A', 15),
    ('jane', 'B', 12),
    ('dave', 'B', 10),
]
sorted(student_tuples, key=lambda student: student[2]) 
# sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

적용한 코드

import sys
input = sys.stdin.readline

N = int(input())
x = []
for i in range(N):
    x.append(list(map(int, input().split())))
xx = sorted(x, key=lambda x: (x[1], x[0]))

for a in xx:
    print(a[0], a[1])

이처럼 비교 하기 전에 각 목록 요소에서 호출할 함수(또는 다른 호출 가능 항목)를 지정하는 키 매개변수를 활용하여 정렬 우선순위를 정할 수 있다.

결과

profile
모르면 공부하고 알게되면 공유하는 개발자

0개의 댓글