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

Kim Jason·2023년 4월 3일
0

알고리즘 노트

목록 보기
19/35
post-thumbnail
function solution(answers) {
    const one = [1, 2, 3, 4, 5];
    const two = [2, 1, 2, 3, 2, 4, 2, 5];
    const three = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
    let cnt = [0, 0, 0];
    let answer = [];
    for (let i = 0; i < answers.length; i++) {
        if (answers[i] === one[i % one.length]) cnt[0]++;
        if (answers[i] === two[i % two.length]) cnt[1]++;
        if (answers[i] === three[i % three.length]) cnt[2]++;
    }
    const maxCnt = Math.max(cnt[0], cnt[1], cnt[2]);
    for (let i = 0; i < 3; i++) {
        if (cnt[i] === maxCnt) answer.push(i + 1);
    }
    return answer;
}

입력값의 제한은 다음과 같다.

  • 배열 answer <= 10,000

이중 배열을 사용한 문제풀이는 불가능하다고 생각했다.
문제풀이의 핵심은 각 수포자가 답을 찍는 패턴을 배열로 선언해두는 것이다.

profile
성장지향형 프론트엔드 개발자

0개의 댓글