function solution(answers) {
var answer = [];
let entire = [];
var correct = [];
let n = answers.length;
function makeArr(iter){
let arr = [];
while(arr.length < n){
arr.push(...iter);
}
entire.push(arr.slice(0, n));
}
makeArr([1,2,3,4,5]);
makeArr([2,1,2,3,2,4,2,5]);
makeArr([3,3,1,1,2,2,4,4,5,5]);
for(let i of entire){
let count = 0;
for(let j = 0; j < n; j++){
if(i[j] === answers[j]) count++;
}
correct.push(count)
}
let max = Math.max(...currect);
for(let i = 0; i < currect.length; i++){
if(currect[i] === max) answer.push(i + 1)
}
return answer;
}
우선 풀긴 했는데 진짜... 좋은 방법이 아닌듯... 일단 이중 for문을 썻다는 것이ㅜㅜ 일단 이중 for문을 사용한 것은 함수를 또 생성하여 변경은 할 수 있다. 다른사람이 푼 풀이에서 띠용했던 부분이 있었다...
function solution(answers) {
var answer = [];
var a1 = [1, 2, 3, 4, 5];
var a2 = [2, 1, 2, 3, 2, 4, 2, 5]
var a3 = [ 3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
// 굳이 길이 만큼 더해서 배열 만들지 않음, filter를 이용해서 일치하는 배열만 만들고 length를 바로 구해서 변수에 정답 수 만 할당...
var a1c = answers.filter((a,i)=> a === a1[i%a1.length]).length;
var a2c = answers.filter((a,i)=> a === a2[i%a2.length]).length;
var a3c = answers.filter((a,i)=> a === a3[i%a3.length]).length;
var max = Math.max(a1c,a2c,a3c);
var correct = []
correct.push(a1c, a2c, a3c);
for(let i = 0; i < correct.length; i++){
if(correct[i] === max) answer.push(i + 1)
}
return answer;
}