[백준] 10814: 나이순 정렬 - 파이썬[python]

다인·2024년 9월 11일

백준

목록 보기
59/112
post-thumbnail

앞의 문제들 덕분에 코드는 금방 짰다. 한 가지 실수가 있어서 기억하고자 쓰는 글!

코드

import sys

N = int(input())
members = []

for _ in range(N):
    age, name = sys.stdin.readline().split()
    members.append([int(age), name])

members.sort(key = lambda x: x[0])

for i in range(N):
    print(*members[i], sep=' ')
  • 속도를 위해 sys를 사용했다.
  • 나이와 이름을 리스트에 담아 members 리스트에 저장했다.
  • 나이순으로만 정렬하면 되어서 람다를 이용해서 정렬했다.

⚠️ 처음에 append에서 int(age)를 안 쓰는 바람에 틀렸습니다가 나왔다.. 문자열로 정렬하면 숫자와 다르게 정렬된다. 예를 들어, '10'보다 '2'가 크다고 판단한다. 각 자릿수별로 비교하기 때문이다.

안정 정렬

문제 설명을 보면 값이 같은 원소의 전후관계가 바뀌지 않는 정렬 알고리즘을 안정 정렬(stable sort)이라고 합니다. 라고 적혀 있다.
안정 정렬이란 정렬을 수행할 때 동일한 값을 가진 원소들의 순서가 유지되는 정렬 알고리즘을 말한다고 한다. 즉, 동일한 원소끼리 입력 순서대로 유지되면 안정적이라고 하는 것 같다.

결과

0개의 댓글