프로그래머스 배열의 유사도 자바스크립트 알고리즘 풀이
문제
나의 풀이
아이디어
s1
원소들 중 조건에 맞는 것들만filter
함수를 써서 거른 다음 걸러진 원소들의 길이를 반환한다.- filter 함수 내부에는 indexOf를 사용해서 -1보다 큰 값이 나올 경우 일치한다고 판단한다.
코드
function solution(s1, s2) { return s1.filter(v => s2.indexOf(v) >= 0).length; }
- filter 함수 내부에는 indexOf를 사용해서 -1보다 큰 값이 나올 경우 일치한다고 판단한다.
다른 사람 풀이
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 개수를 빼주었다.