본문 바로가기
Algorithm/자바스크립트(JavaScript)

[프로그래머스 /JavaScript] 모의고사 + 코드

by 또몽가 2022. 7. 21.

function solution(answers) {
    var answer = [];
    //수포자들이 찍는 패턴 저장
    let firstStu = [1,2,3,4,5];
    let secondStu = [2,1,2,3,2,4,2,5];
    let thirdStu = [3,3,1,1,2,2,4,4,5,5];
    let count = [0,0,0]; // 학생은 3명이므로 3개의 인덱스를 가진 배열에 저장
    
    for (let i=0; i<answers.length; i++){
        //정답과 비교, 순서별 학생과 비교
        if(answers[i]===firstStu[i%firstStu.length]){
            count[0]++;
        }
        if(answers[i]===secondStu[i%secondStu.length]){
            count[1]++;
        }
        if(answers[i]===thirdStu[i%thirdStu.length]){
            count[2]++;
        }
    }
    // 최대값 구하는 메서드 Math.max사용
    const maxScore = Math.max(...count);
    //최대값과 count가 일치할경우 answer가 push됨
    for (let j = 0; j < count.length; j++){
        if (count[j] === maxScore) {
           answer.push(j + 1);
        }
    }
    
    return answer;
    
}

완전 탐색의 대표적인 문제였다.

완전 탐색이란 문제 상에서 가능한 경우의 수를 일일이 나열하면서 답을 찾는 방법을 의미한다.

'무식하게 푼다'라는 의미인 Brute-Force (브루트 포스)라고도 한다.

패턴을 저장해서 정답과 수포자의 배열 내 index를 일일이 비교하고 일치할 경우 1씩 더하고 그 값을 count 배열에 저장하는 방식으로 풀었다.