[JS알고리즘] 공통 원소 구하기
in Algorithm
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));
- 오름차순으로 정렬한다
if(arr1[p1]==arr2[p2]){
만약 두 배열에 같은 값이 있으면 answer에 push한다answer.push(arr1[p1++]); 둘(arr1[p1++] / arr2[p2++])중 아무거나 넣어도 된다 p2++;
p1을 push 해주었다면 p2도 push해주어야한다 (교집합이므로 둘다 증가시켜야함)- a배열과 b배열을 비교하는데 arr1이 작으면 p1을 증가시키고 아니라면 p2를 증가시킨다
inflearn 자바스크립트 알고리즘 강의 내용 =)