본문 바로가기

백준

1764번: 듣보잡(Java)

 

 HashSet과 LinkedList를 사용해 풀었다. 우선 HashSet<String>에 듣도 못한 사람을 저장하고 보도 못한 사람을 입력받음과 동시에 HashSet.contains()를 이용해 듣도 보도 못한 사람이면 LinkedList에 push했다. 출력은 size()와 stream을 사용했다. 

 

 

 

 

 

우선 듣도 못한 사람들을 입력받는다.

 

 

Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();

HashSet<String> data = new HashSet<>();
LinkedList<String> result = new LinkedList<>();
String temp;

//듣도 못한 사람
for(int i = 0; i<n; i++)
{
    temp = scanner.next();
    data.add(temp);
}

 

 

 

 

 

 

보도 못한 사람을 입력받으면서 듣도 못한 사람에도 포함되는지 검사한다. 

 

//보도 못한 사람
for(int i = 0; i<m; i++)
{
    temp = scanner.next();
    if(data.contains(temp))
    {
        result.push(temp);
    }
}

 

 

 

 

 

출력은 stream의 sorted()로 정렬 후 forEach()로 한다.

 

System.out.println(result.size());
result.stream().sorted().forEach((x)->System.out.println(x));

 

 

 

 

 

 

 

 

<전체 코드>

 

import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();

        HashSet<String> data = new HashSet<>();
        LinkedList<String> result = new LinkedList<>();
        String temp;

        //듣도 못한 사람
        for(int i = 0; i<n; i++)
        {
            temp = scanner.next();
            data.add(temp);
        }


        //보도 못한 사람
        for(int i = 0; i<m; i++)
        {
            temp = scanner.next();
            if(data.contains(temp))
            {
                result.push(temp);
            }
        }
        System.out.println(result.size());
        result.stream().sorted().forEach((x)->System.out.println(x));
    }
}

'백준' 카테고리의 다른 글

10815번: 숫자 카드(Java)  (1) 2023.01.30
2477번: 참외밭(Java)  (1) 2023.01.30
11478번: 서로 다른 부분 문자열의 개수(Java)  (1) 2023.01.30
2563번: 색종이(Java)  (1) 2023.01.29
10773번: 제로(Java)  (0) 2023.01.22