[JS알고리즘] 공통 원소 구하기



A, B 두 개의 집합이 주어지면 두 집합의 공통 원소를 추출하여 오름차순으로 출력하는 프로그램을 작성하세요.


function solution(arr1, arr2){
  let answer=[];
  arr1.sort();
  arr2.sort();
  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, 9, 5, 2];
let b=[3, 2, 5, 7, 8];
console.log(solution(a, b));
  1. 오름차순으로 정렬한다
  2. if(arr1[p1]==arr2[p2]){ 만약 두 배열에 같은 값이 있으면 answer에 push한다
  3. answer.push(arr1[p1++]); 둘(arr1[p1++] / arr2[p2++])중 아무거나 넣어도 된다 p2++; p1을 push 해주었다면 p2도 push해주어야한다 (교집합이므로 둘다 증가시켜야함)
  4. a배열과 b배열을 비교하는데 arr1이 작으면 p1을 증가시키고 아니라면 p2를 증가시킨다



inflearn 자바스크립트 알고리즘 강의 내용 =)




© 2018. by sora

Powered by sora