학생 1,2,3이 문제를 찍는 방식이 아래와 같이 주어지고 정답 배열 answers가 주어졌을 때 가장 많이 정답을 맞춘 학생을 리턴해야 함.
1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...
1) 학생마다 반복되는 기본패턴을 배열에 넣는다
2) 반복되는 패턴이 종료되면 나머지 연산자(%)를 통해 처음으로 돌아갈 수 있도록 함
function solution(answers) {
let arr1 = [1,2,3,4,5];
let arr2 = [2,1,2,3,2,4,2,5];
let arr3 = [3,3,1,1,2,2,4,4,5,5];
let result = [0,0,0];
let answer = [];
for(let i = 0; i < answers.length; i++){
if(answers[i] === arr1[i % arr1.length]){
result[0]++
}
if(answers[i] === arr2[i % arr2.length]){
result[1]++
}
if(answers[i] === arr3[i % arr3.length]){
result[2]++
}
}
const max = Math.max(...result);
for(let k = 0; k < result.length; k++){
if(result[k] === max){
answer.push(k+1);
}
}
return answer;
}