[알고리즘] 공통원소 구하기 - 투포인터 알고리즘

newsilver·2021년 5월 29일
0

Algorithm

목록 보기
5/30

문제

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 result = [];
            for(let i=0;i<N;i++){		// arr1[i]와 arr2[j]를 하나씩 비교
                for (let j=0;j<M;j++){
                    if(arr1[i]===arr2[j]){	// arr1[i]와 arr2[j]의 원소가 같으면	
                        result.push(arr1[i]);	// result 배열에 삽입
                    }
                    console.log(arr1[i]+"==="+arr2[j],arr1[i]===arr2[j]);
                }
                    
            }
            result.sort();			// result 배열 오름차순으로 정렬
            console.log("=================");
            console.log("결과 : "+result);
            return result;
        }
            
        let a=[1, 3, 9, 5, 2];
        let b=[3, 2, 5, 7, 8];
        console.log(solution(a, b));


✏️ 문제 출처

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4/dashboard

profile
이게 왜 🐷

0개의 댓글