[プログラマー]模擬試験


プログラマー完全ナビゲーション1級-シミュレーション試験

function solution(answers) {
    const students = [[1, 2, 3, 4, 5], [2, 1, 2, 3, 2, 4, 2, 5], [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]];
    const winner = [];
    let topScore = 0;
    
    students.forEach((student, studentIdx) => {
        let score = 0;
        
        answers.forEach((answer, idx) => {
            if (answer == student[idx % student.length]) score++;
        })
        
        if (score > topScore) {
            topScore = score;
            winner.splice(0);
            winner.push(studentIdx + 1);
        } else if (score === topScore) {
            winner.push(studentIdx + 1);
        }
    })

    
    return winner;
}
  • 水泡子1,水泡子2,水泡子3の正解,学生配列の
  • 人の学生のうち、答えが学生の答えと一致すれば、点数を1に上げ、
  • 点を毎回増加させる.
  • のスコアがtopScoreより大きい場合、topScoreにスコア値を割り当て、勝者の既存の学生を削除し、新しいtopScoreを取得した学生のindex+1を挿入します.
  • scoreをtopScoreと比較し、得点がtopScoreに等しい場合、優勝者リストにその学生のindex+1を挿入する