プログラムのお勉強メモ

プログラムの勉強メモです. Python, Rust, など.

ABC128_b(Guidebook)

問題

考えたこと

  • 配列を他要素でソートすることができるか
  • python の 場合、以下のコードで可能

実装

sorted_list = sorted(res, key=lambda x: (x[0], x[1]))

詰まったところ

  • ソートの1要素目、2要素目でソート順序が逆になる(昇順と降順が混ざる)

解法

  • 逆順にしたい要素をマイナスにしてしまえば良い
  • マイナスにすることによって昇順、降順が逆になる
    • 例 30, 50 -> -50, -30 になる

最終的な実装

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

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

ans = sorted(res, key=lambda x: (x[0], x[1]))

for i in ans:
    print(i[2])