알고리즘 - 4주차_직업군 추천하기

HoJeong Im·2021년 9월 24일
0

Break_Algo

목록 보기
19/46

문제

  • 링크

  • 기본 정렬 및 객체 정의해서 풀 수 있는 문제

코드

function solution(table, languages, preference) {
    var answer = '';
    let obj = {};
    table.forEach((t)=>{
       let line = t.split(" ");
       let first = line[0];
       let arr = line.slice(1);
       obj[first] = arr;
    });
    let arr = [];
    for(const [key, value] of Object.entries(obj)){
        let sum = 0; 
        languages.forEach((language, idx)=>{
            let index = obj[key].indexOf(language);
            let grade = 0;
            if(index != -1 ){
                grade = 5-index;    
            }
            sum += grade * preference[idx]
           
        });
       // console.log(sum)
        arr.push([key, sum]);
    }
    
    arr.sort((a1,a2)=>{
        let val1 = a1[1];
        let val2 = a2[1];
        if(val1===val2){
            if(a1[0] < a2[0]){
                return -1;
            }
            else if(a1[0] > a2[0]){
                return 1;
            }
            else {
                return 0;
            }
        }
        else {
            return val2-val1;
        }
    });
    
    //console.log(arr)
    
    return arr[0][0];
}

회고

  • 문제 입력으로 들어오는 것들을 객체로 분리하고 나서 하나씩 추출하며, 배열에 삽입 후, 정렬
profile
꾸준함이 제일 빠른 길이었다

0개의 댓글