[프로그래머스] 코딩테스트 연습 - 14

krkorklo·2022년 1월 28일
0

프로그래머스

목록 보기
14/78

level 1 - 모의고사

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.

1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...

1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요.

입출력 예시
answers : [1,2,3,4,5]
-> [1]

function solution(answers) {
    var answer = [];
    var student = [[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 = new Array(3).fill(0);
    
    answers.forEach((a, i) => {
        if (a == student[0][i % 5]) count[0]++;
        if (a == student[1][i % 8]) count[1]++;
        if (a == student[2][i % 10]) count[2]++;
    })
    
    var max = Math.max(...count);
    count.filter((c, i) => {
        if (c == max) answer.push(i+1);
    })
    
    return answer;
}

며칠 전에 보고 에잉 어렵다 하고 넘겼는데
안 어려운 문제였다.

그냥 풀기 귀찮았나보다.

0개의 댓글