[매일코딩-프로그래머스] 모의고사 04

2021. 11. 30. 10:58WEB Dev/CordingTEST

728x90

 

 

 

오늘 아침은 비가 와서 이제 출근했다..😣

 

function solution(answers) {
    
    var check = [];
    var check2 = [];
    var check3 = [];
    
    var student = {
        1: [1, 2, 3, 4, 5, 1, 2, 3, 4, 5],
        2: [2, 1, 2, 3, 2, 4, 2, 5, 2, 1],
        3: [3, 3, 1, 1, 2, 2, 4, 4, 5, 5],
    };

    answers.map((a, i)=>{
        check.push(a == Object.values(student)[0][i]);  
        return check;
    })
    
    answers.map((a, i)=>{
        check2.push(a == Object.values(student)[1][i]);  
        return check2;
    })
    
    answers.map((a, i)=>{
        check3.push(a == Object.values(student)[2][i]);  
        return check3;
    })
    
    var oneChk = check.filter(function(element){
        return element==true;}).length;
    
    var twoChk = check2.filter(function(element){
        return element==true;}).length;
    
    var threeChk = check3.filter(function(element){
    return element==true;}).length
    
    return oneChk;
}

 

개별적으로 학생들을 나눠놔야 해서 반복문을 돌리기가 애마하다. map에서 한 번 돈 리턴값을 하나의 배열에 넣고 또 한 번 돌면 또 다른 배열에 넣고 이렇게 해줘야 하는데 그걸 못하겠다ㅠㅠ

 

아무튼 이렇게 코드를 짜서 각 학생들의 맞은 갯수까지는 출력하겠는데, 이 맞은 갯수에 다시 이름을 붙여서, value값대로 정렬해야 한다. object 메소드를 사용해봐야겠다.

 

그러다가 어차피 객체의 키 값이 필요하다면 map 을 가지고 반복하면 되는데 하는 한탄에 찾아보니

https://maxkim-j.github.io/posts/js-map

 

자바스크립트 맵 객체(Map Object)

개발자 김맥스의 기술 블로그입니다

maxkim-j.github.io

 

for...in이나 오브젝트 순회를 쓰면 될 거 같긴 한데.... 아악!!

 

https://oneroomtable.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-sort-%EB%A9%94%EC%86%8C%EB%93%9C-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95-%EC%A0%95%EB%A6%AC

 

자바스크립트 sort() 메소드 사용 방법 정리

자바스크립트의 sort() 메소드는 특정 배열을 정렬하고, 정렬된 배열을 리턴합니다. 기본 정렬은 오름차순이며, 요소를 문자열로 전환한 다음 UTF-16 코드 단위 값을 따라 이를 비교합니다. 배열 정

oneroomtable.tistory.com

 

function solution(answers) {
    
    var check = [];
    var check2 = [];
    var check3 = [];
    
    var student = {
        1: [1, 2, 3, 4, 5, 1, 2, 3, 4, 5],
        2: [2, 1, 2, 3, 2, 4, 2, 5, 2, 1],
        3: [3, 3, 1, 1, 2, 2, 4, 4, 5, 5],
    };

    answers.map((a, i)=>{
        check.push(a == Object.values(student)[0][i]);  
        return check;
    })
    
    answers.map((a, i)=>{
        check2.push(a == Object.values(student)[1][i]);  
        return check2;
    })
    
    answers.map((a, i)=>{
        check3.push(a == Object.values(student)[2][i]);  
        return check3;
    })
    
    var oneChk = check.filter(function(element){
        return element==true;}).length;
    
    var twoChk = check2.filter(function(element){
        return element==true;}).length;
    
    var threeChk = check3.filter(function(element){
    return element==true;}).length
    
    var q = [{
        1 : oneChk,
        2 : twoChk,
        3 : threeChk
    }];
    
    q.sort(function (a, b){
        return a.value - b.value;
    })

    var answer= [];
    if( Object.values(q[0]) != 0){
        answer += Object.keys(q[0])
    }


    return answer;
}

 

 

 

나흘이나 풀었는데 못풀다니 절망이야 ㅠㅠ

 

https://programmers.co.kr/questions/16517

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

나중에 이분의 코드를 참고해봐야지

 

 

728x90