문제 링크

분류 / 레벨 / 언어

완전탐색 / LV.1 / Javscript

설명

완전탐색은 사실상 대기업 코딩테스트에서 가장 많이 나오는 주제이다.
별도의 방법론이 필요없고, 모든 경우의 수를 검증해주기만 하면 된다.
그래서 알고리즘 트레이닝을 안 하고 서비스 개발만 주로 했던 사람(like me)도 부담없이 풀 수 있다.

전체 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const picks = [
[1, 2, 3, 4, 5],
[2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
];
const pickCycles = [5, 8, 10];

function solution(answers) {
let max = 0;

return answers
.reduce(
(acc, cur, idx) => {
pickCycles.forEach((cycle, i) => {
if (picks[i][idx % cycle] === cur) acc[i] += 1;
});
return acc;
},
[0, 0, 0]
)
.reduce((acc, cur, idx) => {
if (cur > max) {
max = cur;
acc = [idx + 1];
} else if (cur === max) acc.push(idx + 1);
return acc;
}, []);
}