BAEKJOON/1084:年齢別


[python]安定したソート


stableソートでは、入力した値に同じ値がある場合、その値の順序は変更されません。例えば、[1,2,3(X),4,5,3(Y)]を昇順に並べた場合、[1,2,3(X),3(Y),4,5]の順では、3番目の位置の3の位置と6番目の位置の3の位置は変更されない。


逆に不安定なソートではソートは保証されません。


[python]lambdaパラメータ:式


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


-->パラメータx、member lst x[0]ソート()


《問題説明》
年齢順に並べ替えた後、年齢が同じであれば入ってくる順に並べ替えるのは理にかなっているが、実際には年齢順だけでよいという問題がある.
<解答>
n = int(input())
member_lst = []

for i in range(n):
    age, name = map(str, input().split())
    age = int(age)
    member_lst.append((age, name))

member_lst.sort(key = lambda x : x[0])	## (age, name)에서 age만 비교
#member_lst.sort()로 쓰면 22 cba, 22 bca, 22 abc가 들어왔을 때 결과가 나이가 다 똑같으니까 들어온 순서대로 출력돼야 하는데 뒤에 알파벳도 정렬돼서 알파벳 순으로 출력됨
for i in member_lst:
    print(i[0], i[1])