문제
풀이
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]) cnt[0]++ if(answers[i] === second[i]) cnt[1]++ if(answers[i] === third[i]) 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; }
'2025 코딩 테스트' 카테고리의 다른 글
[ 프로그래머스 ] JS - 예산 (0) | 2025.01.08 |
---|---|
[ 프로그래머스 ] JS - 완주하지 못한 선수 (해시) (0) | 2025.01.05 |
2025 코딩 테스트 - 01 (0) | 2025.01.05 |