프로그래머스Lv1 - 직업군 추천하기

요리하는코더·2021년 8월 29일
0

알고리즘 - 문제

목록 보기
19/48
post-thumbnail

코드

function solution(table, languages, preference) {
    var answer = '';

    let maxVal = 0;
    
    table.map((t) => {
        const s = t.split(' ');
        const sum = languages.map((l,idx) => {
            const jum = s.findIndex((e) => e === l);
            if(jum > 0) return (6-jum) * preference[idx];
            else return 0;
        }).reduce((acc, cur) => acc+cur)
        if(sum > maxVal) {
            maxVal = sum;
            answer = s[0];
        }
        else if(sum === maxVal) {
            answer = answer < s[0] ? answer : s[0];
        }
    })
    return answer;
}

풀이 및 소감

예전에 풀어본 문제 같은데 그때는 c++로 풀어서 문자열 처리가 조금 어려웠던 거 같은데 이번에는 Javascript로 해결해서 문자열 처리는 비교적 쉬웠다. map을 활용하여 array를 돌고 findIndex로 점수를 계산하고 preference 계산을 해주었는데 sort를 사용했으면 좀 더 깔끔한 코드를 짰을 수 있었을 거 같다.

profile
요리 좋아하는 코린이

0개의 댓글