function solution(arr) {
var answer = [];
let p1 = [1,2,3,4,5];
let p2 = [2,1,2,3,2,4,2,5];
let p3 = [3,3,1,1,2,2,4,4,5,5]; //수포자 3명의 답 찍는 패턴.
let cnt1 = 0; //p1 몇개 맞췄는지 카운트.
let cnt2 = 0; //p2 몇개 맞췄는지 카운트.
let cnt3 = 0; //p3 몇개 맞췄는지 카운트.
let pIdx = 0; //수포자배열의 인덱스.
for(let i=0; i<arr.length; i++){ //p1
if(p1[pIdx] == arr[i]){
cnt1 += 1;
} //같으면 맞춘 갯수 ++
if(pIdx == p1.length-1){
pIdx = -1;
}
pIdx++;
}
pIdx = 0;
for(let i=0; i<arr.length; i++){ //p2
if(p2[pIdx] == arr[i]){
cnt2 += 1;
} //같으면 맞춘 갯수 ++
if(pIdx == p2.length-1){
pIdx = -1;
}
pIdx++;
}
pIdx = 0;
for(let i=0; i<arr.length; i++){ //p3
if(p3[pIdx] == arr[i]){
cnt3 += 1;
} //같으면 맞춘 갯수 ++
if(pIdx == p3.length-1){
pIdx = -1;
}
pIdx++;
}
if(cnt1==cnt2 && cnt2==cnt3 && cnt1==cnt3){
answer.push(1,2,3);
} else if(Math.max(cnt1, cnt2, cnt3) == cnt1 && cnt1 == cnt2){
answer.push(1,2);
} else if(Math.max(cnt1, cnt2, cnt3) == cnt2 && cnt3){
answer.push(2,3);
} else if(Math.max(cnt1, cnt2, cnt3) == cnt3 && cnt3 == cnt1){
answer.push(1,3);
} else {
if(Math.max(cnt1, cnt2, cnt3) == cnt1){
answer.push(1);
} else if(Math.max(cnt1, cnt2, cnt3)==cnt2){
answer.push(2);
} else if(Math.max(cnt1, cnt2, cnt3) == cnt3){
answer.push(3);
}
}
return answer.sort((a,b) => a-b);
}
https://school.programmers.co.kr/learn/courses/30/lessons/42840
단 가장 많이 맞춘 사람이 여러명일 경우의 수를 모두 생각하여 answer 배열에 push 를 했는데 테스트케이스 5,7번이 빗나간다..
뭐가 문제일까?