26. 공통원소 구하기

2024. 12. 15. 22:29· 코딩테스트/기초

import java.util.*;
class Main {	
    public ArrayList<Integer> solution(int n, int[] arr1, int m, int[] arr2) {
        ArrayList<Integer> answer = new ArrayList<>();
        int p1 = 0, p2 = 0;
        // 배열 오름차순 정렬
        Arrays.sort(arr1);
        Arrays.sort(arr2);
        while(p1 < n && p2 < m) {
        	// arr1과 arr2 값이 같으면 p1 값을 추가하고 p1, p2 ++
            if(arr1[p1] == arr2[p2]) {
                answer.add(arr1[p1++]);
                p2++;
            // p2가 p1보다 크면 p1 ++
            // 작은 값을 올려야 다음 값에서 비교 가능
            } else if(arr1[p1] < arr2[p2]) {
                p1++;
            // p1가 p2보다 크면 p2 ++
            } else {
                p2++;
            }
        }
        return answer;
    }

	public static void main(String[] args){
        Main T = new Main();
        Scanner kb = new Scanner(System.in);

        int n = kb.nextInt();
        int[] arr1 = new int[n];
        for(int i = 0; i < n; i++) {
            arr1[i] = kb.nextInt();
        }

        int m = kb.nextInt();
        int[] arr2 = new int[m];
        for(int i = 0; i < m; i++) {
            arr2[i] = kb.nextInt();
        }

        for(int x : T.solution(n, arr1, m, arr2)) {
            System.out.print(x + " ");
        }

	}
}

 

 

import java.util.*;
class Main {    
    public ArrayList<Integer> solution(int n, int[] arr1, int m, int[] arr2) {
        ArrayList<Integer> answer = new ArrayList<>();
        int p1 = 0, p2 = 0;
        Arrays.sort(arr1);
        Arrays.sort(arr2);
        while(p1 < n && p2 < m) {
            if(arr1[p1] == arr2[p2]) {
                answer.add(arr1[p1++]);
                p2++;
            } else if(arr1[p1] < arr2[p2]) {
                p1++;
            } else {
                p2++;
            }
        }

        return answer;
    }

    public static void main(String[] args){
        Main T = new Main();
        Scanner kb = new Scanner(System.in);

        int n = kb.nextInt();
        int[] arr1 = new int[n];
        for(int i = 0; i < n; i++) {
            arr1[i] = kb.nextInt();
        }

        int m = kb.nextInt();
        int[] arr2 = new int[m];
        for(int i = 0; i < m; i++) {
            arr2[i] = kb.nextInt();
        }

        for(int x : T.solution(n, arr1, m, arr2)) {
            System.out.print(x + " ");
        }

    }
}

'코딩테스트 > 기초' 카테고리의 다른 글

28. 연속 부분수열  (1) 2024.12.20
27. 최대 매출  (0) 2024.12.17
24. 멘토링  (1) 2024.12.15
23. 임시반장 정하기  (1) 2024.12.14
22. 봉우리  (0) 2024.12.14
'코딩테스트/기초' 카테고리의 다른 글
  • 28. 연속 부분수열
  • 27. 최대 매출
  • 24. 멘토링
  • 23. 임시반장 정하기
누리는 귀여워
누리는 귀여워
안녕하세요, 누리 사료값을 벌기 위해 앞으로 나아가는 아버지의 개발 블로그입니다.
누리는 귀여워
누리아버지
누리는 귀여워
전체
오늘
어제
  • 분류 전체보기 (76)
    • Java (0)
      • Spring Boot (16)
      • JPA (1)
    • JavaScript (1)
      • React.js (1)
    • DataBase (3)
      • PostgreSQL (2)
    • DevOps (2)
      • MSA (1)
      • Docker (1)
    • OS (9)
    • Network (0)
    • CS 지식 (0)
    • Error 모음집 (0)
    • 코딩테스트 (32)
      • 기초 (31)
      • 알고리즘 (1)
    • 기타 (7)
    • 쉼터 (2)
      • 잡담 (2)
      • 하루 마무리 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

인기 글

태그

  • MSA
  • spring cloud
  • Oracle Cloud
  • git bash
  • war 배포
  • postman
  • kafka sink connect
  • spring boot
  • centos
  • JPA
  • 깃허브연동
  • kafka connect
  • eureka
  • postgresql
  • Dockerfile
  • Kafka
  • Boot
  • 인텔리제이
  • GATEWAY
  • Docker

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
누리는 귀여워
26. 공통원소 구하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.