티스토리 뷰

알고리즘/코딩테스트 공부

5-2 공통원소 구하기

YG - 96년생 , 강아지 있음, 개발자 희망 2021. 12. 1. 20:09

문제

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

풀이

function solution(arr1, arr2) {
  let answer = [];
  arr1.sort((a, b) => a - b);
  arr2.sort((a, b) => a - b);
  let n = arr1.length;
  let m = arr2.length;
  let p1 = (p2 = 0);
  while (p1 < n && p2 < m) {
    if (arr1[p1] === arr2[p2]) {
      answer.push(arr1[p1]);
      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));

투포인터를 이용해서 풀었습니다. 

다른 풀이

function solution(arr1, arr2) {
  let answer = [];
  arr1.sort((a, b) => a - b);
  arr2.sort((a, b) => a - b);
  let n = arr1.length;
  let p1 = 0;
  while (p1 < n) {
    if (arr2.indexOf(arr1[p1]) !== -1) 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));

indexOf 를 이용해서 풀었습니다.

'알고리즘 > 코딩테스트 공부' 카테고리의 다른 글

5-4 연속 부분수열 2  (0) 2021.12.01
5-3 연속 부분수열 1  (0) 2021.12.01
5-1 두 배열 합치기  (0) 2021.12.01
4-5 K번째 큰 수  (0) 2021.11.28
4-3 멘토링  (0) 2021.11.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함