LoginSignup
0
0

More than 3 years have passed since last update.

【AtCoder】ABC128B - Guidebook

Posted at

ソートの勉強になる問題です。

市名と点数を格納していくので、辞書かな?
→同じ市が複数あるので辞書は使えません。

レストランの番号はリストのインデックスかな?
→並び替えるので、リストにレストランの番号を入れた方がいい。

という訳で、リストに番号、市名、点数を入れていきます。

市名と点数の並び替えってどうやるの?
→l.sort(key=lambda x:x[1],x[2])

キモは、市名は辞書順(昇順)だけれど、点数は降順という所。

解説の方には、点数を-1倍するとあって、なるほどなーと思いました。

第1キーは昇順、第2キーは降順にしたい場合は
キーに-をつければ降順になるという記事を見つけたので、
その方法を使ってみました。

多重キーでのソート

n=int(input())
l=[]

for i in range(n):
    s,p=input().split()
    l.append([i+1,s,int(p)])

l.sort(key=lambda x:(x[1],-x[2]))

for i in l:
    print(i[0])
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0