
https://school.programmers.co.kr/learn/courses/30/lessons/120868
function solution(spell, dic) {
return dic.find(
(v) => spell.filter(
(sp) => v.includes(sp)).length === spell.length)
? 1 : 2;
}
✔ spell의 각 원소를 돌면서 dic의 각 요소가 spell을 모두 포함하고 있다면 true
✔ true인 경우가 한 번이라도 있다면 1, 그렇지 않으면 2를 반환
❗ spell의 원소를 한번씩만 사용해야 한다는 조건을 고려하지 못함
function solution(spell, dic) {
return dic.filter(
(v) => spell.every(
(c) => v.includes(c) && v.indexOf(c) === v.lastIndexOf(c))).length
? 1 : 2;
}
✔ every() -> dic의 요소가 spell을 모두 포함하고, spell의 각 원소가 dic의 요소에 한 번씩만 사용되는 경우 true를 반환
✔ indexOf와 lastIndexOf의 활용으로 한 번씩만 사용되는지의 여부를 확인할 수 있다.