거북이개발자

[인프런] 공통원소 구하기 본문

Algorithm(JavaScript)

[인프런] 공통원소 구하기

류정식 2021. 7. 6. 22:16

0. 제목

  • 공통원소 구하기

1. 문제


2. 풀이 1차

  • 2중 for문을 이용해서 한개의 array를 전부도는걸 여러번 반복했다.
  •  

3. 코드 1차


function solution(arr1, arr2) {
    let answer = [];
    arr1.sort();
    arr2.sort();
    var p1=0;

    while(p1<arr1.length){
        var p2=0
        while(p2<arr2.length){
            if(arr1[p1]===arr2[p2++]){
                answer.push(arr1[p1])
            }
        }
        p1++;
    }

    return answer;
}

let a = [1, 3, 9, 5, 2];
let b = [3, 2, 5, 7, 8];
console.log(solution(a, b));

 

2. 풀이 2차

  • 2포인트 알고리즘 이용
  • 정렬후 작은값의 포인터만 값을 올리고, 같으면  push해줬다


3. 코드 2차

 


function solution(arr1, arr2) {
    let answer = [];
    arr1.sort((a,b)=>a-b);
    arr2.sort((a,b)=>a-b);
    var p1=0, p2=0;

    while(p1<arr1.length && p2<arr2.length){
        if(arr1[p1]===arr2[p2]){
            answer.push(arr1[p1]);
            p1++;
            p2++;
        }
        else if(arr1[p1]>arr2[p2]){
            p2++
        }else{
            p1++
        }
    }
    

    return answer;
}

let a = [1, 3, 9, 5, 2];
let b = [3, 2, 5, 7, 8];
console.log(solution(a, b));

 

Comments