먼저 arr1과 arr2를 오름차순 시켜준 다음에
arr1의 p1과 arr2의 p2를 비교한다. arr1의 p1이 p2보다 작으면 p1 증가시켜주고 값이 같으면 answer에 push 해준다.
같았을 때는 p1도 증가시키고 p2도 같이 증가시켜준다. 반복해주고 p1과정이 끝나면(혹은 p2) 탐색이 끝났으므로 answer를 리턴해준다.
아래코드를 보자.
function solution(arr1, arr2) {
let answer = [];
arr1.sort((a, b) => a - b);
arr2.sort((a, b) => a - b);
let p1 = p2 = 0;
while (p1 < arr1.length && p2 < arr2.length) {
if (arr1[p1] === arr2[p2]) {
answer.push(arr1[p1++]);
p2++;
}
else if (arr1[p1] < arr2[p2]) p1++;
else p2++;
}
return answer;
}
let a = [1, 3, 10, 5, 2];
let b = [3, 2, 5, 7, 8];
console.log(solution(a, b));
<출처 : 자바스크립트 알고리즘 문제풀이(코딩테스트 대비): 김태원>
자바스크립트 알고리즘 문제풀이(코딩테스트 대비) - 인프런 | 강의
자바스크립트(JavaScript)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 재미있게 풀 수 있는 기초 단계 문제부터 고급 알고리즘까지 단계별로 차근차근 배우도록 설계된 강좌입니다., 개발
www.inflearn.com
'JavaScript > JS_Algorithm' 카테고리의 다른 글
[인프런 - JS 알고리즘 문제풀이] stack판단3 (0) | 2021.08.05 |
---|---|
[인프런 - JS 알고리즘 문제풀이] stack판단2 (0) | 2021.08.05 |
[인프런 - JS 알고리즘 문제풀이] stack판단 (0) | 2021.08.05 |
[인프런 - JS 알고리즘 문제풀이] Array 문제 (0) | 2021.08.05 |
[인프런 - JS 알고리즘 문제풀이]아나그램 갯수문제(Hashing과 연관) (0) | 2021.08.05 |