공통 원소 구하기 - Node.js

프동프동·2022년 7월 30일
0

알고리즘 - Node.js

목록 보기
67/116
post-thumbnail

공통 원소 구하기


문제

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

입력

첫 번째 줄에 집합 A의 크기 N(1<=N<=30,000)이 주어집니다.
두 번째 줄에 N개의 원소가 주어집니다. 원소가 중복되어 주어지지 않습니다.
세 번째 줄에 집합 B의 크기 M(1<=M<=30,000)이 주어집니다.
네 번째 줄에 M개의 원소가 주어집니다. 원소가 중복되어 주어지지 않습니다.
각 집합의 원소는 1,000,000,000이하의 자연수입니다.

출력

두 집합의 공통원소를 오름차순 정렬하여 출력합니다.

입력 예시 1

1 3 9 5 2
3 2 5 7 8

출력 예시 2

2 3 5


해결방법

function solution(array1, array2) {
  let answer = [];
  let p1 = 0;
  let p2 = 0;
  let length = array1.length;
  array1.sort((a, b) => {
    return Number(a - b);
  });

  array2.sort((a, b) => {
    return Number(a - b);
  });
  while (p1 < length && p2 < length) {
    if (array1[p1] === array2[p2]) {
      answer.push(array1[p1]);
      p1++;
      p2++;
    } else if (array1[p1] < array2[p2]) {
      p1++;
    } else {
      p2++;
    }
  }
  return answer;
}

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

profile
좋은 개발자가 되고싶은

0개의 댓글