반응형
문제 5-2번
A, B 두 개의 집합이 주어지면 두 집합의 공통 원소를 추출하여 오름차순으로 출력하는 프로 그램을 작성하세요.
🍄 입력설명
첫 번째 줄에 집합 A의 크기 N(1<=N<=30,000)이 주어집니다. 두 번째 줄에 N개의 원소가 주어집니다. 원소가 중복되어 주어지지 않습니다. 세 번째 줄에 집합 B의 크기 M(1<=M<=30,000)이 주어집니다. 네 번째 줄에 M개의 원소가 주어집니다. 원소가 중복되어 주어지지 않습니다. 각 집합의 원소는 1,000,000,000이하의 자연수입니다.
🍄 출력설명
두 집합의 공통원소를 오름차순 정렬하여 출력합니다.
🍄 입력예제 1
5
1 3 9 5 2
5
3 2 5 7 8
🍄 출력예제 1
2 3 5
정답 코드
function solution(arr1, arr2) {
let answer = [];
//sort는 문자열로 변경하고 정렬한다. 정렬 기준이 없다면 두자릿수는 문자열처럼 정렬하기 때문에 1->2->10 이 아니라 1->10->2로 정렬한다
arr1.sort((a, b) => a - b);
arr2.sort((a, b) => a - b);
let p1 = (p2 = 0);
while (p1 < arr1.length && p2 < arr2.length) {
if (arr1[p1] < arr2[p2]) p1++;
else if (arr1[p1] === arr2[p2]) {
answer.push(arr1[p1++]);
p2++;
} else p2++;
}
return answer;
}
let arr1 = [1, 3, 9, 5, 2];
let arr2 = [3, 2, 5, 7, 8];
console.log(solution(arr1, arr2));
// [2,3,5] 출력
728x90
반응형
'알고리즘' 카테고리의 다른 글
[JS] 알고리즘 기초 정복 5-3번_연속 부분수열 1 (0) | 2021.07.20 |
---|---|
[JS] 프로그래머스 k번째 수_정렬 (0) | 2021.07.20 |
[JS] 알고리즘 기초 정복 5-1번_두 배열 합치기 (0) | 2021.07.19 |
[JS] 알고리즘 기초 정복 4-5번_K번째 큰 수 (0) | 2021.07.16 |
[JS] 알고리즘 기초 정복 4-4번_졸업선물 (0) | 2021.07.16 |