반응형
📌 문제

📌 풀이
function solution(answers) {
const obj = {};
const score1 = [1, 2, 3, 4, 5];
const score2 = [2, 1, 2, 3, 2, 4, 2, 5];
const score3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
answers.forEach((v, i) => {
if (v === score1[i % score1.length]) {
obj[1] = (obj[1] || 0) + 1;
}
if (v === score2[i % score2.length]) {
obj[2] = (obj[2] || 0) + 1;
}
if (v === score3[i % score3.length]) {
obj[3] = (obj[3] || 0) + 1;
}
})
const max = Math.max(...Object.values(obj));
const result = Object.keys(obj)
.filter(key => obj[key] === max)
.map(Number)
.sort((a, b) => a - b);
return result;
}
- 각 수포자의 패턴을 배열로 정의한다
- 주어진
answers
배열의 각 문제 답이 수포자의 패턴 답과 일치할 경우 해당 수포자의 점수를 증가시킨다
* 수포자 패턴의 길이가 정답(answers) 배열보다 짧을 수 있으므로, 각 패턴의 길이로 나눈 나머지를 이용해 문제 번호에 접근하면 된다 - 최고 점수를 가진 수포자를 찾아서 배열에 넣는다 (
Object.values
,Object.keys
활용) - 동일한 점수를 가졌을 경우를 고려해,
sort()
를 통해 오름차순으로 정렬한 후 반환한다
728x90
'배움 기록 > 코테 연습' 카테고리의 다른 글
[프로그래머스] 프로세스 : JavaScript (0) | 2025.04.06 |
---|---|
[프로그래머스] 올바른 괄호 : JavaScript (0) | 2025.04.05 |
[프로그래머스] 의상 : JavaScript (0) | 2025.03.23 |
[프로그래머스] 완주하지 못한 선수 : JavaScript (0) | 2025.03.22 |
[프로그래머스] 빈 배열에 추가, 삭제하기 : JavaScript (1) | 2025.02.17 |
댓글