코테 문제 풀이

[레벨 0] 배열의 유사도 (이중 for문, 메서드)

2DC 2022. 12. 9. 20:37

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/120903?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


답안1 (이중 for문)

function solution(s1, s2) {
    var answer = 0;
    for (let i = 0; i < s1.length; i++) {
        for (let j = 0; j < s2.length; j++) {
            if (s1[i] === s2[j]) answer += 1
        }
    }
    return answer;
}
  • 무식하게 완전탐색을 때려박는 for문이다.
  • 배열을 하나하나 비교하고 조건에 맞는 배열끼리 비교될 경우 +1을 해준다.

 

답안2 (메서드 체이닝)

function solution(s1, s2) {
    return s1.filter((e) => s2.includes(e)).length
}
  • filter는 콜백함수를 truty하게 만드는 엘리먼트들을 따로 배열로 만드는 메서드이다.
  • includes는 어떤 엘리먼트가 배열 내 존재하는지를 true, false로 반환하는 메서드이다.
  • 이 메서드를 통해 filter의 조건문을 충족시켜주고, 최종적으로 만들어진 배열의 length를 return하면 해결된다.