Coding Test/Programmers
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 33 - 배열의 유사도)
dev-ini
2024. 2. 4. 15:25
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