본문 바로가기
알고리즘 스터디/[프로그래머스] 월간 코드 챌린지 시즌1

[알고리즘] 모의고사 문제풀이(자바스크립트 javascript)

by 제니운 2022. 7. 20.
728x90

 

👌 반복되는 모양이 있어서 변수부터 지정해주면

 

    let a1 = [1, 2, 3, 4, 5];
    let a2 = [2, 1, 2, 3, 2, 4, 2, 5]
    let a3 = [ 3, 3, 1, 1, 2, 2, 4, 4, 5, 5];

 

👌 filter 함수를 통해 answers 와 일치하는 개수를 꺼내주기,  이건 변수를 a1c, a2c, a3c 처럼 지정

 

    let a1c = answers.filter((a,i)=> a === a1[i%a1.length]).length;
    let a2c = answers.filter((a,i)=> a === a2[i%a2.length]).length;
    let a3c = answers.filter((a,i)=> a === a3[i%a3.length]).length;

 

👌 이 세 변수 중 가장 최대 개수가 누구인지

 

let max = Math.max(a1c, a2c, a3c)

 

👌 a1c는 1번 수포자, a2c는 2번 수포자, a3c는 3번 수포자 이므로 각각 1,2,3으로 answer에 넣어주면 된다.

 

    if (a1c === max) {answer.push(1)};
    if (a2c === max) {answer.push(2)};
    if (a3c === max) {answer.push(3)};

 

 

✅ 최종 코드

function solution(answers) {
    var answer = [];
    let a1 = [1, 2, 3, 4, 5];
    let a2 = [2, 1, 2, 3, 2, 4, 2, 5]
    let a3 = [ 3, 3, 1, 1, 2, 2, 4, 4, 5, 5];

    let a1c = answers.filter((a,i)=> a === a1[i%a1.length]).length;
    let a2c = answers.filter((a,i)=> a === a2[i%a2.length]).length;
    let a3c = answers.filter((a,i)=> a === a3[i%a3.length]).length;
    let max = Math.max(a1c,a2c,a3c);

    if (a1c === max) {answer.push(1)};
    if (a2c === max) {answer.push(2)};
    if (a3c === max) {answer.push(3)};
    return answer;
}
728x90