프로그래머스 level1. 모의고사

이민택·2020년 2월 23일
0
post-thumbnail

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

알고리즘 구상

각각의 수포자 별로 정답을 찍는 패턴을 배열로 저장하여 정답 배열을 순회하면서 각각의 수포자의 정답을 체크하여 마지막에 배열에 답을 추가하는 방식으로 구상하였다

코드

function solution(answers) {
    var answer = [];
    let supo1=[1, 2, 3, 4, 5];
    let supo2=[2, 1, 2, 3, 2, 4, 2, 5];
    let supo3=[3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
    let idx1=0,idx2=0,idx3=0;
    let cnt1=0,cnt2=0,cnt3=0;
    
    for(let i=0;i<answers.length;i++){
        if(!supo1[idx1]){idx1=0;}
        if(!supo2[idx2]){idx2=0;}
        if(!supo3[idx3]){idx3=0;}
        
        if(answers[i]===supo1[idx1++]){ cnt1++;}
        if(answers[i]===supo2[idx2++]){ cnt2++;}
        if(answers[i]===supo3[idx3++]){ cnt3++;}
    }
    let temp=[];
    if(cnt1===Math.max(cnt1,cnt2,cnt3)){temp.push(1)}
    if(cnt2===Math.max(cnt1,cnt2,cnt3)){temp.push(2)}
    if(cnt3===Math.max(cnt1,cnt2,cnt3)){temp.push(3)}
    
    return temp.sort();
}
profile
데이터에 소외된 계층을 위해 일을 하는 개발자를 꿈꾸는 학생입니다

0개의 댓글