Programmers js - 모의고사

박요셉·2024년 5월 29일
0

Programmers.Js

목록 보기
21/26
post-custom-banner

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;
}
profile
개발자 지망생
post-custom-banner

0개의 댓글