앞의 문제들 덕분에 코드는 금방 짰다. 한 가지 실수가 있어서 기억하고자 쓰는 글!
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=' ')
⚠️ 처음에 append에서 int(age)를 안 쓰는 바람에 틀렸습니다가 나왔다.. 문자열로 정렬하면 숫자와 다르게 정렬된다. 예를 들어, '10'보다 '2'가 크다고 판단한다. 각 자릿수별로 비교하기 때문이다.
문제 설명을 보면 값이 같은 원소의 전후관계가 바뀌지 않는 정렬 알고리즘을 안정 정렬(stable sort)이라고 합니다. 라고 적혀 있다.
안정 정렬이란 정렬을 수행할 때 동일한 값을 가진 원소들의 순서가 유지되는 정렬 알고리즘을 말한다고 한다. 즉, 동일한 원소끼리 입력 순서대로 유지되면 안정적이라고 하는 것 같다.
