logo
Posts프로그래머스배열의 유사도

배열의 유사도

문제 설명

두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.

제한 사항

  • 1 ≤ s1, s2의 길이 ≤ 100
  • 1 ≤ s1, s2의 원소의 길이 ≤ 10
  • s1s2의 원소는 알파벳 소문자로만 이루어져 있습니다
  • s1s2는 각각 중복된 원소를 갖지 않습니다.

입출력 예

s1s2result
[“a”, “b”, “c”][“com”, “b”, “d”, “p”, “c”]2
[“n”, “omg”][“m”, “dot”]0

입출력 예 설명

입출력 예 #1

  • “b”와 “c”가 같으므로 2를 return합니다.

입출력 예 #2

  • 같은 원소가 없으므로 0을 return합니다.

문제풀이 (나)

function solution(s1, s2) {
    let result = 0;
    s1.forEach(d1 => {
        s2.forEach(d2 => {
            result = d1 == d2 === true ? ++result : result;
        });
    });
    return result;
}

for 문을 돌려서 각각의 배열 값이 일치하는지 확인하는 구문이다.

문제풀이 (다른사람)

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

내가 한 방식과 결과물은 동일하지만, array 에서 제공하는 메서드를 사용해 풀이된 문제다.

조건은 includes 를 사용해 배열에 s1의 각각의 배열값이 s2 에 포함되었는지 확인한다.

filter 로 조건에 맞는 결과물을 리턴한다.

마지막으로 조건과 일치하는 배열의 개수를 리턴한다.

레퍼런스