Algorithm(JavaScript)
[인프런] 공통원소 구하기
류정식
2021. 7. 6. 22:16
0. 제목
- 공통원소 구하기
1. 문제
2. 풀이 1차
- 2중 for문을 이용해서 한개의 array를 전부도는걸 여러번 반복했다.
3. 코드 1차
function solution(arr1, arr2) {
let answer = [];
arr1.sort();
arr2.sort();
var p1=0;
while(p1<arr1.length){
var p2=0
while(p2<arr2.length){
if(arr1[p1]===arr2[p2++]){
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));
2. 풀이 2차
- 2포인트 알고리즘 이용
- 정렬후 작은값의 포인터만 값을 올리고, 같으면 push해줬다
3. 코드 2차
function solution(arr1, arr2) {
let answer = [];
arr1.sort((a,b)=>a-b);
arr2.sort((a,b)=>a-b);
var p1=0, p2=0;
while(p1<arr1.length && p2<arr2.length){
if(arr1[p1]===arr2[p2]){
answer.push(arr1[p1]);
p1++;
p2++;
}
else if(arr1[p1]>arr2[p2]){
p2++
}else{
p1++
}
}
return answer;
}
let a = [1, 3, 9, 5, 2];
let b = [3, 2, 5, 7, 8];
console.log(solution(a, b));