강의로 돌아가기
henry-ki

예시 샘플은 통과가 되는데 테스트에선 모두 에러가 납니다.

function solution(answers) {
let list = [[1,2,3,4,5],[2,1,2,3,2,4,2,5],[3,3,1,1,2,2,4,4,5,5]];
let count = [0,0,0];
let result = [];

for(let i=0;i<3;i++){
    for(let j=0;j<list[i].length;j++){
        if(list[i][j] === answers[j%5]){
            count[i]++;
        } 
    }
}


for(let k=0;k<count.length;k++){
    let max = count[0];
    if(count[k]>=max){
        result.push(k+1);
    }            
    if(count[k]<count[k+1]){
        count = count.sort((a,b)=>a-b); 
        result.push(k+1);
    }
}

return result;

}

list value들을 수기로 기입해서 그럴까요..? 채점하기 누르고 테스트 코드로 돌리면 모두 에러가 나네요ㅜㅜ
문제 있는 부분이 있을까요? 날카롭게 지적해주시면 감사하겠습니다!!!🙏

작성중인 코드―solution.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function solution(answers) {
    let list = [[1,2,3,4,5],[2,1,2,3,2,4,2,5],[3,3,1,1,2,2,4,4,5,5]];
    let count = [0,0,0];
    let result = [];

    for(let i=0;i<3;i++){
        for(let j=0;j<list[i].length;j++){
            if(list[i][j] === answers[j%5]){
                count[i]++;
            } 
        }
    }


    for(let k=0;k<count.length;k++){
        let max = count[0];
        if(count[k]>=max){
            result.push(k+1);
        }            
        if(count[k]<count[k+1]){
            count = count.sort((a,b)=>a-b); 
            result.push(k+1);
        }
    }

    return result;
}
1 개의 답변
김화빈

answers의 배열의 크기가 list의 배열 크기보다 크면
7줄의 for문 j가 배열이 초기화 되지 못하고 배열의 크기를 넘어가서 그런것 같아요.

정상
list[0][0,1,2,3,4,0,1,2,3,4....]

현재
list[0][0,1,2,3,4,5,6,7,8,9...]

혹시 이렇게 변경해보시면 어떨까요?
if(list[i][j % list[i].length ] === answers[j]) //나머지 사용으로 배열보다 커지면 자동으로 갱신

저도 초보라서 아닐수도...

  • henry-ki

    이것도 안되네요ㅜㅜ 답변 감사합니다

    henry-ki―2021.07.22 21:17
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.