Java/Java 알고리즘

백준 20978번 共通要素 (Common Elements) JAVA 구현해보기

kimc 2022. 2. 1. 15:19

```

백준 20978번 共通要素 (Common Elements) JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1.  백준 20978 번 풀이
  2.  리스트 공통원소 스트림으로 찾기
  3.  리스트 중복원소 스트림으로 제거
  4.  리스트 정렬 스트림으로 하기

https://www.acmicpc.net/problem/20978

 

20978번: 共通要素 (Common Elements)

長さ N の整数列 A = (A1, A2, ..., AN) と長さ M の整数列 B = (B1, B2, ..., BM) が与えられる.A と B の両方に出現する整数をすべて,1 個ずつ昇順で出力せよ.

www.acmicpc.net

 

 

 

백준 20978번 공통 원소는 

난이도 브론즈 등급의 문제로서

 

두 리스트를 입력받고

공통원소를 출력해주면 되는 문제입니다.

 


30분 정도 위에 링크를 방문하셔서 풀어보시고

안풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.


리스트를 입력받고

합친다음

중복원소 제거 하고 정렬후

출력해주면 되는 문제입니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.StringTokenizer;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) throws IOException {
        final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        // 리스트 사이즈 입력
        final int listSizeA = Integer.parseInt(st.nextToken());
        final int listSizeB = Integer.parseInt(st.nextToken());

        // 리스트 입력
        List<Integer> listA = Stream.of(br.readLine().split("\\s+")).map(Integer::valueOf).collect(Collectors.toList());
        List<Integer> listB = Stream.of(br.readLine().split("\\s+")).map(Integer::valueOf).collect(Collectors.toList());

        // 리스트 합치기
        List<Integer> listCommon = new ArrayList<>(listA);
        listCommon.retainAll(listB);

        // 리스트 정렬, 리스트 중복제거
        listCommon = listCommon.stream().distinct().sorted(Comparator.naturalOrder()).collect(Collectors.toList());

        // 리스트 출력
        listCommon.forEach(System.out::println);
    }

}

 

 

참조 문서

 

https://stackoverflow.com/questions/25491997/how-to-read-multiple-integer-values-from-one-line-in-java-using-bufferedreader-o

 

How to read multiple integer values from one line in Java using BufferedReader object?

I am using BufferedReader class to read inputs in my Java program. I want to read inputs from a user who can enter multiple integer data in single line with space. I want to read all these data in an

stackoverflow.com

https://stackoverflow.com/questions/5943330/common-elements-in-two-lists

 

Common elements in two lists

I have two ArrayList objects with three integers each. I want to find a way to return the common elements of the two lists. Has anybody an idea how I can achieve this?

stackoverflow.com

 

 

읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩하시길 바랍니다 ~ :)

 


 

728x90