[Algorithm] 프로그래머스 - 모의고사 (JavaScript)

swing·2021년 8월 11일
1

[Algorithm]

목록 보기
9/96

풀이

  1. 1번 수포자는 1,2,3,4,5가 반복 / 2번은 2,1,2,3,2,4,2,5가 반복 / 3번은 3,3,1,1,2,2,4,4,5,5가 반복한다.
  2. 수포자들의 정답배열을 만든다.
  3. 각 수포자들의 배열에서, i % 각 배열의 길이의 배열값을 구한다.
    (반복되니 i % 각 배열의 길이를 하면 반복되는 배열에서 계속해서 돌 수 있음)
  4. 배열값이 정답과 일치하면 해당 수포자의 정답 카운트를 ++해준다.
  5. cnt를 비교해서, 가장 높은 수포자를 []안에 담아 return한다.

코드

function solution(answers) {
    let answer = [];
    let [cnt1,cnt2,cnt3] = [0,0,0];
    const supo1 = [1,2,3,4,5];
    const supo2 = [2,1,2,3,2,4,2,5];
    const supo3 = [3,3,1,1,2,2,4,4,5,5];
    
    answers.forEach((answer,index)=>{
        if(supo1[index % supo1.length] === answer) cnt1++;
        if(supo2[index % supo2.length] === answer) cnt2++;
        if(supo3[index % supo3.length] === answer) cnt3++;
    })
    
    const first = Math.max(cnt1,cnt2,cnt3);
    
    if(first === cnt1) answer.push(1)
    if(first === cnt2) answer.push(2)
    if(first === cnt3) answer.push(3)
    
    return answer
}
profile
if(기록📝) 성장🌱

0개의 댓글