[프로그래머스] 모의고사

쿼카쿼카·2022년 9월 21일
0

알고리즘

목록 보기
26/67

문제

코드

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로 계속 바꿔가며 해주는 방법 뿐이다.
profile
쿼카에요

0개의 댓글