A[i % A.length]를 하면 주기적으로 배열 내부의 같은 자리의 값을 불러 비교할 수 있는 것을 활용
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];
let count = [0, 0, 0];
for(let i = 0; i < answers.length; i++) {
if(answers[i] == A[i % A.length]) count[0]++;
if(answers[i] == B[i % B.length]) count[1]++;
if(answers[i] == C[i % C.length]) count[2]++;
}
const max = Math.max(count[0], count[1], count[2]);
for(let i = 0; i < count.length; i++) {
if(max == count[i]) answer.push(i + 1);
}
return answer;
}
아래 코드를 보고 A[i % A.length]의 활용을 확인한 후 위의 코드를 스스로 짜봄
담 문제는 혼자 풀도록 노력해야지 ㅜ
function solution(answers) {
var answer = [];
const A = '12345'.split('')
const B = '21232425'.split('')
const C = '3311224455'.split('')
const aResult = answers.filter((item,i) => item === Number(A[i % A.length])).length;
const bResult = answers.filter((item,i) => item === Number(B[i % B.length])).length;
const cResult = answers.filter((item,i) => item === Number(C[i % C.length])).length;
const max = Math.max(aResult,bResult,cResult)
if(aResult === max) answer.push(1)
if(bResult === max) answer.push(2)
if(cResult === max) answer.push(3)
return answer;
}