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
반응형
'자료구조 및 알고리즘 > JavaScript Practice' 카테고리의 다른 글
[프로그래머스] 시저암호 (1) | 2024.12.19 |
---|---|
[프로그래머스] 부족한 금액 계산하기 (1) | 2024.12.18 |
[프로그래머스] 숨어있는 숫자의 덧셈 (2) (0) | 2024.12.17 |
[프로그래머스] 치킨쿠폰 (0) | 2024.12.15 |
[프로그래머스] 배열의 길이를 2의 거듭제곱으로 만들기 (1) | 2024.12.14 |