반응형
문제
https://www.acmicpc.net/problem/10814
코드
import sys
n = int(sys.stdin.readline())
people_list = []
for _ in range(n):
age, name = sys.stdin.readline().rstrip().split()
age = int(age)
people_list.append((age, name))
people_list.sort(key = lambda x: x[0])
for i in people_list:
print(i[0], i[1])
설명
문제의 설명에 보면 안정 정렬을 이용한다고 나와있는데,
안정 정렬이란?
같은 값을 같는 record가 여러 개 존재할 때, 원래의 정렬을 보장하는 정렬
불안정 정렬이란?
원래의 정렬을 보장하지 않는 정렬
따라서 이 문제의 경우에는 나이순으로 정렬을 하고,
나이가 같을 때는 기본 입력 순서인 가입 순서로 정렬을 해야한다.
파이썬의 경우 sort를 통해 정렬하게 되면 순서가 바뀌지 않고 정렬이 된다.
기본적으로 sort가 안정정렬의 속성을 갖고 있기 때문이다.
따라서 입력값을 받아주고 나이, 이름 순으로 리스트에 추가한 다음,
key를 사용하여 나이를 통해 정렬을 하게 해준다.
이후 출력하면 된다.
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 10872: 팩토리얼 (0) | 2023.01.12 |
---|---|
[파이썬, Python] 백준 18870: 좌표 압축 (0) | 2023.01.11 |
[파이썬, Python] 백준 1181: 단어 정렬 (0) | 2023.01.08 |
[파이썬, Python] 백준 11651: 좌표 정렬하기 2 (0) | 2023.01.07 |
[파이썬, Python] 백준 11650: 좌표 정렬하기 (0) | 2023.01.06 |