본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 33 - 배열의 유사도)

728x90

 

# 문제

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



# 답안

// 1. 입력: s1와 s2 -> 배열 [1,2,3] 같은거
// 2. 출력: s1, s2 비교했을 때 같은 원소의 개수


// 방법1) for 반복문 사용
function solution(s1, s2) {
    let count = 0;
    for (i=0; i<s1.length; i++) 
        if(s2.includes(s1[i])){   // s2배열이 s1의 원소를 포함하고 있을 때마다 count 1씩 증가시키기
        count++
      }
    return count;
}


// 방법2) filter 사용
function solution(s1, s2) {
    const answer = s1.filter((x) => s2.includes(x));  // s1의원소(x)를 하나씩 필터할건데, s2가 해당 원소를 가지는 것만 빼서 배열로 만든다.
    return answer.length;
}



# 인사이트 

// 방법1은 for문을 사용하는 방법인데, 따로 length를 안구하고, 원소가 추가될 때마다 count를 하나씩 증가시켜서 count 자체를 return 한다.
// 방법2는 filter를 사용하는 방법인데, 필터해서 배열로 만들고 length를 구하는 방법이다. 방법1 보다 코드가 훨씬 간결하다.

 

728x90