Home 나이순 정렬 백준 10841번 정렬
Post
Cancel

나이순 정렬 백준 10841번 정렬

https://www.acmicpc.net/problem/10814

문제

온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오.

문제의 핵심은 정렬을 하되 Stable한 상태를 유지하는가 입니다. 나이순으로 정렬하지만 먼저 가입한 순서라는게 거기서 나옵니다.

1
2
3
4
5
6
7
8
9
10
num = int(input())
name_list = []
for i in range(num):
    age, name = map(str,input().split())
    name_list.append([int(age),i,name])

name_list = sorted(name_list, key=lambda x : (x[0],x[1]))
for i in range(num):
    print(name_list[i][0], end = ' ')
    print(name_list[i][2])

안풀려서 조금 고민을 했는데. 그냥 기입하는 순서도 변수로 기록을하고 정렬을 하면 됩니다.

참고로 sorted, sort를 할때 key-lambda로 리스트안에 몇번째를 기준으로 순서대로 정렬할지 정할 수 있습니다.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.