programmers 모의고사 (javascript)

JongIk Park·2021년 6월 12일
0

프로그래머스

목록 보기
4/17
post-thumbnail

🏀 나의 풀이

function solution(answers) {
    var answer = [];
   
    const a1 = [1,2,3,4,5]; // 변해서는 안되는 값이기 때문에 const로 선언
    const a2 = [2,1,2,3,2,4,2,5];
    const a3 = [3,3,1,1,2,2,4,4,5,5];
    
    let count = [0, 0, 0];
    
    for(let i=0; i<answers.length; i++){
        if(answers[i] === a1[i%a1.length]){ // answers길이가 a1 보다 길 경우에는 a1을 반복해야하기 때문에 설정.
            count[0]++;
        }
        if(answers[i] === a2[i%a2.length]){
            count[1]++;
        }
        if(answers[i] === a3[i%a3.length]){
            count[2]++;
        }
    }
    
    const max = Math.max(...count);
    for(let i =0; i<3; i++){
        if(count[i] === max){
            answer.push(i+1)
        }
    }
    return answer;
}

🏀 다른 사람의 풀이

function solution(answers) {
    var answer = [];
    var a1 = [1,2,3,4,5];
    var a2 = [2,1,2,3,2,4,2,5];
    var a3 = [3,3,1,1,2,2,4,4,5,5];
    
    var b1 = answers.filter((a,i) => a === a1[i%a1.length]).length;
    var b2 = answers.filter((a,i) => a === a2[i%a2.length]).length;
    var b3 = answers.filter((a,i) => a === a3[i%a3.length]).length;
    var max = Math.max(b1,b2,b3);
    
    if (b1 === max) {answer.push(1)};
    if (b2 === max) {answer.push(2)};
    if (b3 === max) {answer.push(3)};
    return answer;
}

🏀 추가공부

filter()

  • filter()메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환한다.
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter(word => word.length > 6);

console.log(result);
//Array ["exuberant", "destruction", "present"]

참고자료
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

profile
신입 프론트엔드 개발자

0개의 댓글