article thumbnail image
Published 2022. 6. 17. 15:46
공통원소 구하기
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
 
 
앞선 문제와 비슷한 문제이다.
두개의 배열을 비교해서 같은 숫자가 있으면 그걸 꺼내서 오름차순으로 정렬하면 된다.
 

📌작성코드

<html>

<head>
  <meta charset="UTF-8">
  <title>출력결과</title>
</head>

<body>
  <script>
    function solution(arr1, arr2) {
      let answer = [];
      for (let i = 0; i < arr1.length; i++) {
        if (arr1.includes(arr2[i])) {
          answer.push(arr2[i])
        }
      }
      answer.sort((a, b) => (a - b))
      return answer;
    }
    let a = [1, 3, 9, 5, 2];
    let b = [3, 2, 5, 7, 8];
    console.log(solution(a, b));
  </script>
</body>

</html>
우선 a b 배열을 비교해서 공통된걸 꺼내야하니
for문을 활용하여 안에 값을 하나씩 확인해준다.
includes()
includes는 앞에 있는 배열 데이터 부분에 인수로 사용된
특정한 데이터가 포함이되어져 있는지를 확인하는 메소드.
 
조건문을 넣어서 a배열에 b배열 인덱스가 포함하고 있는지 확인한다음
b의 값들이 있으면 answer에 푸쉬!
마지막으로 오름차순으로 정렬해줘야하니 조건문이 끝나는시점에 sort() 사용하면 끝.
 

'알고리즘' 카테고리의 다른 글

[알고리즘 문제] 5-4번  (0) 2022.06.21
[알고리즘 문제] 5-3번  (0) 2022.06.17
[알고리즘 문제] 5-1번  (0) 2022.06.17
[알고리즘 문제] 4-5번  (0) 2022.06.16
[알고리즘 문제] 4-4번  (0) 2022.06.16
복사했습니다!