자료구조 및 알고리즘/JavaScript Practice

[프로그래머스] 외계어 사전

Ryomi 2024. 12. 17. 23:33
728x90
반응형

24년 12월 17일
해결한 문제 갯수: 16

 

문제 설명

 

문제 분석

- spell의 모든 문자를 정확히 한 번씩 사용해야 합니다.

- dic에 조건을 만족하는 단어가 있으면 1, 없으면 2를 반환합니다.

- spell과 dic의 모든 원소는 알파벳 소문자로만 구성

 

 

첫 번째 접근: Reduce 활용

function solution(spell, dic) {
    return spell.reduce((answer, l) => {
        dic = dic.filter(el => el.includes(l))
        answer = dic.length > 0 ? 1 : 2
        
        return answer
    }, 1)
}

1.  reduce를 사용한 spell 배열 순회

- 누적값인 answer와 현재문자 l을 처리합니다.

2. filter

- 현재 문자 l을 포함하는 단어만 필터링하여 dic을 업데이트 합니다.

3. 결과

- 필터링 후 dic의 길이에서, 단어가 남아있으면 1, 없으면 2를 반환합니다.

 

두 번째 접근: 코드 간소화

function solution(spell, dic) {
    return dic.filter(w => spell.every(l => w.includes(l))).length ? 1 : 2
}

 

728x90
반응형