JavaScript/JS_Algorithm

[인프런 - JS 알고리즘 문제풀이] 공통인자 구해보기

느리지만 꾸준하게 2021. 8. 5. 17:50

먼저 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));

 

 

<출처 : 자바스크립트 알고리즘 문제풀이(코딩테스트 대비): 김태원>

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4/dashboard

 

자바스크립트 알고리즘 문제풀이(코딩테스트 대비) - 인프런 | 강의

자바스크립트(JavaScript)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 재미있게 풀 수 있는 기초 단계 문제부터 고급 알고리즘까지 단계별로 차근차근 배우도록 설계된 강좌입니다., 개발

www.inflearn.com