function solution(answer) {
let a= [1, 2, 3, 4, 5]
let b=[2, 1, 2, 3, 2, 4, 2, 5]
let c=[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
let A=[]
let B=[]
let C=[]
for (let i = 0; i < answer.length; i++) {
if (a[i % 5] === answer[i])
A.push(answer[i])
if (b[i % 8] === answer[i])
B.push(answer[i])
if (c[i % 10] === answer[i])
C.push(answer[i])
}
let result= [A.length,B.length, C.length]
let max= Math.max(...result)
let final=[]
result.reduce((_,cur,i)=>{
if (cur===max )final.push(i+1)
},0)
return final.sort()
}

메서드
const answerTable=
[[1, 2, 3, 4, 5],
[2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]]
function solution(answer) {
const scoreList=answerTable.map((el,i)=>{
// 스코어는 찍은번호가 정답과 일치하는지 확인하고 학생들의 점수를 합산
const score=answer.reduce((acc,cur,l)=>{
return acc+ (el[l%el.length]===cur? 1 : 0)
},0)
return { student : i+1, score}
})
const biggest =Math.max(...scoreList.map(el=>{
return el.score
}))
return scoreList.filter((el)=>{ return el.score===biggest
}).map(el=>el.student )
}