[依珂太]ソート-国営数



🔔 質問する


道現の4つのクラスのN名の学生の名前と国語の英語の数学の点数をあげることができますこの場合、以下の条件で学生の成績をソートするプログラムを作成してください.
  • 国語の点数は減少順で
  • 国語の点数が同じで、英語の点数は増加順で
  • に並んでいる.
  • 国語の点数は英語の点数と同じで、数学の点数が減少する順番は
  • です.
  • すべてのスコアが同じ場合、名前はアルファベット順に増加します(ただし、Askyコードでは大文字は小文字より小さいのでアルファベット順に並べられます).
  • 入力

  • 最初の行はデビュー賢の4つのクラスの学生数N(1<=N<=10000)を与えた.
  • の2行目から、学生の名前、国語、英語、数学の点数はスペースで区切られています.
  • 点は1点以上、100点以下である.
  • 文字列で、名前はアルファベットの大文字と小文字で構成され、長さは10文字を超えません.

    しゅつりょく

  • 問題のソート基準に従ってソートされ、最初の行からN行に各学生の名前が出力される.
  • 🎯 解答方法


    学生の名前と各科の点数を入力し、問題のヒントに従って並べ替えます.降順の場合、負数に変更できます.プロンプトに従ってソートし、アレイの0番インデックスを出力すると、正しい答えが得られます.

    💻 python code

    n = int(input())
    
    array = []
    for _ in range(n):
        data = input().split()
        array.append((data[0], int(data[1]), int(data[2]), int(data[3])))
    
    array.sort(key=lambda x : (-x[1], x[2], -x[3], x[0]))
    
    for i in array:
        print(i[0])