2025 코딩 테스트
[ 프로그래머스 ] JS - 모의고사 (완전탐색)
주연배
2025. 1. 8. 22:03
문제
풀이
1. 수포자 1, 2, 3이 찍은 수를 각각의 배열로 만들어 저장하기
2. 맞은 문제의 수를 세 줄 cnt 배열을 만든 후 각각 0으로 초기화 한다.
3. for문을 사용해 answers 배열 각각의 값과 수포자 1,2,3 배열의 값이 같을 경우 cnt를 1씩 증가하기
4. 현재 cnt에는 각각 맞은 개수가 들어있다. 여기서 가장 큰 값을 가진 수만 가져와야 된다.
5. Math.max()를 이용해 cnt배열에서 가장 큰 수를 구한다.
6. for문을 돌려서 cnt 배열에서 위에서 구한 가장 큰 수랑 같은 값일 경우 그 값의 인덱스 + 1을 해 준다.
function solution(answers) { let answer = []; let cnt = [0,0,0]; let first = [1,2,3,4,5]; let second = [2,1,2,3,2,4,2,5]; let third = [3,3,1,1,2,2,4,4,5,5]; for(let i=0; i<answers.length; i++){ if(answers[i] === first[i % first.length]) cnt[0]++ if(answers[i] === second[i] % second.length) cnt[1]++ if(answers[i] === third[i] % third.length) cnt[2]++ } let max = Math.max(...cnt); //5, 2 for(let i=0; i<cnt.length; i++){ //cnt [5,0,0], [2,2,2] if(cnt[i] === max) answer.push(i+1) } return answer; }