プログラマプリンタ


def solution(priorities, location):
    answer = 0
    result = []
    copy = []
    
    for i in range(len(priorities)):
        copy.append([i, priorities[i]])
      

    while(len(copy) > 0):
        
        new_list = sorted(copy, key=lambda x: x[1], reverse=True)
        m = new_list[0][1];

        if  copy[0][1] < m :
            copy.append(copy[0]);
            copy.remove(copy[0]);
        
        else :
            result.append(copy[0]);
            copy.remove(copy[0]);
    
    for i in result:
        if i[0] == location:
            return result.index(i)+1

に答える

  • インデックスと値を持つ新しい2 Dリストcopyを作成します.
  • の2 D配列の値部分を降順に並べ替え、最大値を指定します.
  • 最大値より大きい場合は、結果配列に移動します.
  • max未満の場合は、最後に移動します.
  • では、結果値は順番に含まれるはずです.
  • 所与の位置とインデックス値が同じである場合、その値を含むインデックスが出力される.
  • 他の人の解答を見て、私のようにmaxを書く必要はありません.anyという関数で比較することもできます.
    問題を理解するスピードが早ければ、これより簡単にカットできるはずです.ううう

    学識

  • 2 2 2 Dアレイで必要な値で
  • をソートする.
  • Pythonのany関数