코딩테스트/programmers level1

[Java script] 프로그래머스 level1 - 모의고사

뚜벅이! 2019. 6. 17. 15:39
728x90

 

 

일단 1번,2번,3번의 패턴을 저장할 필요가 있다.

1,2,3,4,5  ( 1패턴당 5개)

2,1,2,3,2,4,2,5 ( 1패턴당 8개)

3,3,1,1,2,2,4,4,5,5 ( 1패턴당 10개)

 

그리고 카운팅을 해줄 count 변수

=>

function solution(answers) {
    var person = [
        [1,2,3,4,5],
        [2,1,2,3,2,4,2,5],
        [3,3,1,1,2,2,4,4,5,5]
    ];
    var count = [0,0,0];
}

 

그다음 answer의 크기만큼 for문을 도는데, 패턴의 크기만큼 다시 돌아야하기 때문에 % 연산자를 이용한다

 


function solution(answers) {
    var person = [
        [1,2,3,4,5],
        [2,1,2,3,2,4,2,5],
        [3,3,1,1,2,2,4,4,5,5]
    ];
    var count = [0,0,0];
    for (var i in answers){
        if(person[0][i%5] == answers[i]){
            count[0]++;
        }
        if(person[1][i%8] == answers[i]){
            count[1]++;
        }
        if(person[2][i%10] == answers[i]){
            count[2]++;
        }
    }
}

 

그리고 count 최대값을 구해줄 Math.max() 함수를 이용하여 max값을 구해주고, 사람마다 max값을 가지고 있는 사람을 체크해서 리턴

 


function solution(answers) {
    var person = [
        [1,2,3,4,5],
        [2,1,2,3,2,4,2,5],
        [3,3,1,1,2,2,4,4,5,5]
    ];
    var count = [0,0,0];
    for (var i in answers){
        if(person[0][i%5] == answers[i]){
            count[0]++;
        }
        if(person[1][i%8] == answers[i]){
            count[1]++;
        }
        if(person[2][i%10] == answers[i]){
            count[2]++;
        }
    }
    var max = Math.max(...count);
    
    var answer = [];
    for(let a in count){
        if(count[a] == max){
            answer.push(Number(a)+1);
        }
    }
    
    return answer;
}

 

 

728x90