<코드>
function solution(answers) {
var answer = [];
const a = [1,2,3,4,5]
const b = [2,1,2,3,2,4,2,5]
const c = [3,3,1,1,2,2,4,4,5,5]
const count = [0,0,0]
answers.forEach((item, i) => {
if(item === a[i%5]) count[0]++
if(item === b[i%8]) count[1]++
if(item === c[i%10]) count[2]++
})
const max = Math.max(...count)
count.forEach((item, i) => {
if(item === max) answer.push(i + 1)
})
return answer;
}
<풀이>
인수로 주어진 answers 배열을 순회하면서 각 정답이 수포자들의 정답과 일치하는지 확인한다.
수포자들의 정답은 일정한 숫자가 반복되는 값이기에 배열로 만들고 각 배열의 length로 나눈 나머지값으로 인덱스를 구할 수 있다.
예를 들어, 1번이 찍는 방식은 [1,2,3,4,5]가 반복되고, 6번 문제는 i % length 즉5 % 5의 값인 0번 인덱스 1로 비교를 하면 됨