function solution(answers) {
let one = [1, 2, 3, 4, 5];
let two = [2, 1, 2, 3, 2, 4, 2, 5];
let three = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
let everyAnswer = [0,0,0];
answers.map((value,index)=>{
return one[index % one.length] === value && everyAnswer[0]++
})
answers.map((value,index)=>{
return two[index % two.length] === value && everyAnswer[1]++
})
answers.map((value,index)=>{
return three[index % three.length] === value && everyAnswer[2]++
})
let maxNum = Math.max(...everyAnswer)
let answer = []
for(let i=0; i<everyAnswer.length; i++){
if (everyAnswer[i] == maxNum){
answer.push(i+1)
}
}
return(answer)
}
처음에 결과로 오류가 엄청 나오길래 딱 든생각이 문제에보면 최대 10,000문제 라는 말이있는데 그러면 배열을 계속해서 루프를 시키면서 결과를 받아야하는데 내가 선언한 배열을 딱 정해져있어서 오류가 난다고 생각했고 분하지만 도저히 생각이 나질않아 이부분만 정답풀이를 보았는데 처음에 내생각에 반복문이나 다른 메소드들이 있을줄 알았는데 그게 아니였다...
코드에서보면 one[index % one.length] === value 이 부분에서
긴배열의 map에서index 랑 짧은 배열의 나머지값으로 일정패턴배열의 값을 계속 돌릴 수 있었다
이부분은 중요한 개념일 것 같아서 따로 글을 올려두려한다🤓