문제

코드
function solution(answers) {
const winner = [0, 0, 0];
const first = [1, 2, 3, 4, 5];
const second = [2, 1, 2, 3, 2, 4, 2, 5];
const third = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
answers.forEach((val, i) => {
if(first[(i%first.length)] === val) winner[0] += 1;
if(second[(i%second.length)] === val) winner[1] += 1;
if(third[(i%third.length)] === val) winner[2] += 1;
});
const result = [];
winner.forEach((val, i) => {
if(val === Math.max(...winner)) result.push(i+1);
})
return result;
}
반전은 없었다.
- 코드를 작성하며 뭔가 더 좋은 방법이 있을텐데 고민을 많이 했다. 하지만 기억나지 않았다. 내 나름 찝찝하게 코드 제출하고 남 코드를 봤는데 다들 비슷했다. 기분이 좋기도 했지만 한 편으론 문제의 본질보단 어떻게든 줄이는 데에만 열중하지 않았나 하는 생각이 든다!
indexOf 전체
- indexOfAll이 있는 줄 알았는데 없다.
- indexOf를 for로 돌리며 해당 index+1로 계속 바꿔가며 해주는 방법 뿐이다.