[프로그래머스] 알고리즘 Kit - 모의고사

ss_kim·2024년 11월 26일

<코드>

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]
    
    const count = [0,0,0]
    
    answers.forEach((item, i) => {
        if(item === a[i%5]) count[0]++
        if(item === b[i%8]) count[1]++
        if(item === c[i%10]) count[2]++
    })
  
    const max = Math.max(...count)
    
    count.forEach((item, i) => {
        if(item === max) answer.push(i + 1)
    })
    
    return answer;
}



<풀이>

인수로 주어진 answers 배열을 순회하면서 각 정답이 수포자들의 정답과 일치하는지 확인한다.

수포자들의 정답은 일정한 숫자가 반복되는 값이기에 배열로 만들고 각 배열의 length로 나눈 나머지값으로 인덱스를 구할 수 있다.
예를 들어, 1번이 찍는 방식은 [1,2,3,4,5]가 반복되고, 6번 문제는 i % length5 % 5의 값인 0번 인덱스 1로 비교를 하면 됨

profile
프론트엔드 개발자

0개의 댓글