プログラマー逮捕者の模擬試験


質問する

  • 問題の説明
    数学は数学を放棄する人の略語である.「囚人3人組」は模擬試験で数学の問題を全部撮りたいと思っている.最初の問題から最後の問題まで、執胞子は以下の通りである.
    1番捕手の撮り方:1,2,3,4,5,1,2,3,4,5...
    2番捕手の撮り方:2、1、2、3、2、4、2、5、2、2、3、2、4、2、5...
    3番捕手の撮り方:3,3,1,1,2,2,4,5,5,3,3,1,2,2,4,5,5...
  • 最初の問題から最後の問題までの正解が順番に並んでいる場合は、最も多くの質問に答えた人が誰なのか、答えを並べて返すように解答関数を書いてください.
  • 制限条件
    試験には最大10000問が含まれている.
    質問の答えは1 2 3 4 5のうちの1つです.
    点数が一番高い人が何人かいる場合は、戻った値を昇順に並べてください.
  • I/O例
    answers return
    [1,2,3,4,5][1]
    [1,3,2,4,2][1,2,3]
  • に答える
    def solution(answers):
        answer = []
        one = [1,2,3,4,5] * 2001
        two = [2,1,2,3,2,4,2,5] * 1251 
        three = [3,3,1,1,2,2,4,4,5,5] * 1001
        
        count1 = 0
        count2 = 0
        count3 = 0
        for i in range(len(answers)):
            if one[i] == answers[i]:
                count1 += 1
            if two[i] == answers[i]:
                count2 += 1
            if three[i] == answers[i]:
                count3 += 1
        
        temp = [0,count1,count2,count3]
        MAX = max(temp)
        for i in range(len(temp)):
            if MAX == temp[i]:
                answer.append(i)
        return answer
    プロセス
    問題は難しくない.そしてcountの昇順に並べばいいです.
    それぞれをカウントし,最大値を計算し,最大値に基づいてどのように返される配列を生成するかを解決することが核心である.私にとって.
    したがって、0を追加するtemp配列を作成してMAXを計算し、そのインデックス(1,2,3)をreturn配列に追加することができる.
    に感銘を与える
    そんなに難しくないです.インデックスで返すことも知っています.がんばってください.
    冬です.