문제

문제 링크
image

나의 풀이

아이디어

  • s1 원소들 중 조건에 맞는 것들만 filter 함수를 써서 거른 다음 걸러진 원소들의 길이를 반환한다.
    • filter 함수 내부에는 indexOf를 사용해서 -1보다 큰 값이 나올 경우 일치한다고 판단한다.

      코드

      function solution(s1, s2) {
        return s1.filter(v => s2.indexOf(v) >= 0).length;
      }
      

다른 사람 풀이

function solution(s1, s2) {
  return s1.filter((v) => s2.includes(v)).length;
}

나와 다르게 indexOf 대신 includes를 사용한 풀이.

function solution(s1, s2) {
  const concat = [...s1, ...s2];
  const setConcat = Array.from(new Set(concat));

  return concat.length - setConcat.length;
}

중복 요소가 허용되지 않는 set의 특성을 이용한 재미있는 풀이.
s1과 s2의 전체 원소들 개수에서 s1과 s2의 set 개수를 빼주었다.