알고리즘/코딩테스트 공부
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 를 이용해서 풀었습니다.