코딩테스트

[프로그래머스] 스킬트리 (JS)

여유로운 프론트엔드 개발자 2024. 9. 12. 14:51

문제

 

프로그래머스

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

programmers.co.kr

 

풀이

  (1) skill_trees를 순회하면서 각 요소마다 skill에 있는 알파벳을 제외하고는 모두 지운다.

  (2) 필터로 반환된 배열과 skill의 length를 똑같이 맞추고 같은 값이면 answer를 1씩 늘린다.

function solution(skill, skill_trees) {
    const skillArr = skill.split("");
    let answer = 0;
    
    skill_trees.forEach(skill => {
        const compareSkill = [...skillArr];
        const filteredSkills = skill.split("").filter(data => skillArr.includes(data));

        compareSkill.length = filteredSkills.length;
        if (compareSkill.toString() === filteredSkills.toString()) {
            answer++;
        }
    })

    return answer;
}

 

결론

프로그래머스 Level 2의 문제이다.

선행스킬에 없는 다른 스킬은 비교할 필요가 없으므로 제외시키고, 그 후 선행스킬과 같은지 비교하였다.

값이 다르면 선행스킬을 따르지 않았다는 의미가 된다.