[알고리즘] 4. 공통원소 구하기

__Dev_1·2021년 11월 25일
0

Algorithm

목록 보기
4/4
post-thumbnail

📌풀이

A, B 두 개의 집합이 주어지면 두 집합의 공통 원소를 추출하여 오름차순으로 출력하는 프로그램을 작성하세요.

📌입출력예시

  • 배열의 길이 : 5
    1 3 9 5 2
  • 배열의 길이 : 5
    3 2 5 7 8

🔑KEY
투 포인터(Two Pointer) 알고리즘

📌풀이

🎨첫번째 풀이

//공통 원소 구하기
function solution(arr1, arr2){
    let answer = [];
    n = arr1.sort().length;
    m = arr2.sort().length;
    let l = 0;
    let P1 = P2 = 0;

    if( n <= m )  l = n // 배열의 크기가 작을 경우를 고려
    else  l = m

   while(P1 < l && P2 < l){
        if(arr1[P1] === arr2[P2]) {
            answer.push(arr1[P1++])
            P2 ++;
        } else{
            P1 ++;
        }
   }
    return answer;

🎈최종풀이

//공통 원소 구하기
function solution(arr1, arr2){
    let answer = [];
    n = arr1.sort().length;
    m = arr2.sort().length;
    let l = 0;
    let P1 = P2 = 0;

    if( n <= m )  l = n	// 배열의 크기가 작을 경우를 고려
    else  l = m

   while(P1 < l && P2 < l){
        if(arr1[P1] === arr2[P2]) {
            answer.push(arr1[P1++])
            P2 ++;
        }else if (arr1[P1] < arr2[P2]){
            P1 ++;
        } else{
            P2 ++;
        }
   }
    return answer;

📌부족했던 점

  • 배열을 이미 sort 했기 때문에 "작을 경우" 에 대한 경우의 수를 생각하지 못함
profile
메모장 :)

0개의 댓글