# 문제
# 풀이
간단한 정렬 알고리즘 문제이다. 정렬에 두가지 조건이 붙는 것에 유의해야한다. 나이순으로 오름차순 정렬하면서, 나이가 같다면 먼저 들어온 것이 앞에 나오도록 해야한다. 들어온 두개의 나이와, 이름을 튜플 형식으로 리스트에 저장한다.
파이썬을 이용하면 파이썬의 sort에 key를 이용해서 쉽게 정렬 할 수 있다.
또한 기본적으로 파이썬은 stable한 정렬을 하기 때문에 순서가 뒤죽박죽 섞이지 않고 정렬 된다.
만일 나이 즉 x[0]이 같을 경우 정렬조건을 주고 싶다면, key=lambda : x:(x[0],x[1])로 키값을 주면 된다.
# 코드
import sys
# key값으로 정렬을 하는데, 그 외 순서에대해서는 stable속성이 적용된다.
# 즉 원래 순서를 유지하면서 정렬된다.
def solve():
N = int(input())
list = []
for _ in range(N):
year,name = sys.stdin.readline().strip().split()
data = (int(year),name)
list.append(data)
list.sort(key=lambda x:x[0])
for age,name in list:
print(age, name)
if __name__ == '__main__':
solve()
# 마치며
'•알고리즘(Algorithm ) > 문제풀이' 카테고리의 다른 글
[백준-10989] 수 정렬하기3 파이썬, 계수정렬 (0) | 2022.08.07 |
---|---|
[백준-1427] 소트 인사이드 파이썬 (0) | 2022.08.07 |
[백준-4195] 친구 네트워크 파이썬, union-find풀이, 파이썬 set을 이용한 풀이 (0) | 2022.08.06 |
[백준-5397] 키로거 파이썬 (0) | 2022.08.05 |
[백준-1966] 프린터 큐 파이썬 (0) | 2022.08.05 |