1,2,3번 수포자가 찍는 방식에 따라 주어진 답에서 가장 많이 맞춘 사람을 출력한다.
answer배열 문자길이에 맞게 각각 수포자의 답 패턴을 구한다.
하나씩 정답과 비교하면서 맞춘 개수를 하나의 배열에 저장한다.
최댓값을 가진 학생(배열의 index)를 출력한다.
function solution(answers) {
let count1 = 0;
let count2 = 0;
let count3 = 0;
const result = [];
const person1 = "12345".repeat(answers.length / 5) + [12345].slice(0, answers.length%5);
const person2 = "21232425".repeat(answers.length / 8) + [2123245].slice(0, answers.length%8);
const person3 = "3311224455".repeat(answers.length / 10)+ [3311224455].slice(0, answers.length%10);
for(let i=0; i< answers.length ; i++){
if(parseInt(person1[i]) === answers[i]){
count1 = count1 + 1;
}
}
for(let j=0; j< answers.length ; j++){
if(parseInt(person2[j]) === answers[j]){
count2 = count2 + 1;
}
}
for(let k=0; k< answers.length ; k++){
if(parseInt(person3[k]) === answers[k]){
count3 = count3 + 1;
}
}
result.push(count1,count2,count3);
const MAX = Math.max.apply(null,result);
const winners = [];
let winner = result.indexOf(MAX);
while(winner != -1){
winners.push(winner+1);
winner = result.indexOf(MAX, winner+1);
}
var answer = winners;
return answer;
}
2명 이상이 최고점을 받을 수 있기 때문에 Math.max()로 한번에 출력하기 보다는, Max값을 저장하고 하나, 하나 비교하며 최고점자를 출력하는게 point이다.