배열의 유사도

오찬주·2024년 2월 18일
0

JAVASCRIPT

목록 보기
2/8
post-thumbnail

프로그래머스 입문 문제!

배열의 유사도!

두 배열이 얼마나 유사한지 확인하는 문제로 두 배열을 비교해 같은 원소의 개수를 return 하도록 하는 문제다.

자연스레 이제는 반복문을 생각하게 된다!!
내가 푼 방법은 for문을 활용해 s1 배열의 길이, s2 배열의 길이만큼 반복을 돌려 같다면 answer을 하나씩 증가시킨다!

function solution(s1, s2) {
  var answer = 0;
  for (var i = 0; i < s1.length; i++) {
    for (var j = 0; j < s2.length; j++) {
      if (s1[i] == s2[j]) answer++;
    }
  }
  return answer;
}

하지만 이제는 반복문 보다는 다른 것에 적응해야 할 것 같아
filter() 함수를 활용해 다른 방법으로 풀어보고자 한다.

filter 함수
filter 함수는 배열의 각 요소를 순회하면서 주어진 조건을 만족하는 요소들로 이루어진 새로운 배열을 만든다

풀이 STEP

  1. s1 배열의 각 요소(x)에 대해 s2 배열에 해당 요소가 포함되어 있는지를 확인 - ìncludes 함수 활용
  2. 만약 s2 배열에 해당 요소가 포함되어 있다면, filter 함수는 그 요소를 포함한 새로운 배열을 반환하도록
  3. 생성된 배열을 새로운 상수에 할당 후 return
function solution(s1, s2){
  //s1 배열의 각 요소 x(매개변수)에 대해 s2 배열에 
  //해당 요소가 포함되어 있는지 확인
	const intersection = s1.filter((x) => s2.includes(x));
    return intersection;
}

filter 함수는 배열에서 유용하게 사용할 수 있는 함수다!!

profile
프론트엔드 엔지니어를 희망합니다 :-)

0개의 댓글