[프로그래머스] 배열의 유사도
카테고리 : 컴퓨터 공학
태그: programmers · Code Refactoring · 참고 할 만한 다른 사람의 코드 · 코딩 기초 트레이닝 · 프로그래머스 · 코딩테스트 연습 · JavaScript · 배열의 유사도 · js 배열의 유사도
태그: programmers · Code Refactoring · 참고 할 만한 다른 사람의 코드 · 코딩 기초 트레이닝 · 프로그래머스 · 코딩테스트 연습 · JavaScript · 배열의 유사도 · js 배열의 유사도
문제 설명
두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1
과 s2
가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤
s1
,s2
의 길이 ≤ 100 - 1 ≤
s1
,s2
의 원소의 길이 ≤ 10 s1
과s2
의 원소는 알파벳 소문자로만 이루어져 있습니다s1
과s2
는 각각 중복된 원소를 갖지 않습니다.
입출력 예
s1 | s2 | result |
---|---|---|
[“a”, “b”, “c”] | [“com”, “b”, “d”, “p”, “c”] | 2 |
[“n”, “omg”] | [“m”, “dot”] | 0 |
입출력 예 설명
입출력 예 #1
- “b”와 “c”가 같으므로 2를 return합니다.
입출력 예 #2
- 같은 원소가 없으므로 0을 return합니다.
나의 풀이
function solution(s1, s2) {
return s1.filter((v, i) => s2.includes(v)).length;
}
나의 두번째 풀이(Code Refactoring)
function solution(s1, s2) {
let answer = 0;
for (i = 0; i < s1.length; i++) {
for (j = 0; j < s2.length; j++) {
s1[i] === s2[j] && answer++;
}
}
return answer;
}
// 일반 for문으로 푸는 방법 / 이중 반복문을 써야함
// O(n^2)의 시간 복잡도
참고 할 만한 다른 사람의 코드
function solution(s1, s2) {
let result = 0;
s1.forEach((i) => {
for (j of s2) i == j ? result++ : result;
});
return result;
}
//forEach 활용