본문 바로가기
JavaScript

[프로그래머스 Lv.1] 모의고사 javascript

by 어느새벽 2024. 11. 28.
function solution(answers) {
    //수포자 삼인방의 찍는 패턴 정해주고 
    const pattern1 = [1, 2, 3, 4, 5];
    const pattern2 = [2, 1, 2, 3, 2, 4, 2, 5];
    const pattern3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];

    // 수포자들이 맞춘 카운트를 담음
    const scores = [0, 0, 0];

    // answers 배열의 인덱스와 같은 수포자들의 패턴 인덱스를 비교해서 맞으면 카운트
    answers.forEach((answer, index) => {
        if (answer === pattern1[index % pattern1.length]) scores[0]++;
        if (answer === pattern2[index % pattern2.length]) scores[1]++;
        if (answer === pattern3[index % pattern3.length]) scores[2]++;
    });

    // 가장 높은 점수를 찾음
    const maxScore = Math.max(...scores);

    // 가장 높은 점수를 받은 수포자의 번호를 배열에 담아 반환
    return scores
        .map((score, index) => (score === maxScore ? index + 1 : null))
        .filter((num) => num !== null);
}