문제
- 두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return 하도록 solution 함수를 완성해주세요.
입출력 예
s1 | s2 | result |
["a", "b", "c"] | ["com", "b", "d", "p", "c"] | 2 |
["n", "omg"] | ["m", "dot"] | 0 |
나만의 풀이
이번 문제는 생각을 많이 한 것 같다. 왠지 두 배열을 비교해서 동일한 요소가 몇 개 있는지 검색을 하면 다양한 내장 함소로 할 수 있을 것 같았으나 지금 Tstory의 글들을 보지 못해 for문, if문, ?문 만 이용해서 풀어보았다.
우선 for문 안에 for문 넣고 또 안에 if문을 넣기에는 너무 무거워 보여서 s1과 s2의 배열 안에 원소의 계수를 비교하고 더 많은 원소를 들고 있는 만큼 for문은 돌려 if문으로 indexOf를 이용해 동일한 원소의 값이 있으면 변수에 1을 더해 리턴하는 식으로 풀었다.
function solution(s1, s2) {
let answer = 0;
const arrLength = s1.length >= s2.length ? s1.length : s2.length;
for (let i = 0 ; i < arrLength; i++) {
if (s2.indexOf(s1[i]) !== -1) {
answer += 1;
}
}
return answer;
}
'프로그래머스 JS LV0' 카테고리의 다른 글
LV0 35 문자열 정렬하기 (1) (0) | 2022.10.17 |
---|---|
LV0 34 중앙값 구하기 (0) | 2022.10.17 |
LV0 32 아이스 아메리카노 (0) | 2022.10.17 |
LV0 31 문자열 안에 문자열 (0) | 2022.10.17 |
LV0 30 삼각형의 완성 조건 (1) (2) | 2022.10.15 |