상세 컨텐츠

본문 제목

백준 1764

알고리즘

by Goyoungjung 2023. 8. 4. 12:11

본문

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

 

1764번: 듣보잡

첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.

www.acmicpc.net

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

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

        String str = br.readLine();

        StringTokenizer stk = new StringTokenizer(str);

        int n = Integer.parseInt(stk.nextToken());
        int m = Integer.parseInt(stk.nextToken());

        Set<String> unheardList = new HashSet<>();

        for (int i = 0; i < n; i++) {
            unheardList.add(br.readLine());
        }

        Set<String> unseenList = new HashSet<>();

        for (int i = 0; i < m; i++) {
            unseenList.add(br.readLine());
        }

        List<String> list = new ArrayList();

        for (String s : unheardList) {
            if (unseenList.contains(s)) {
                list.add(s);
            }
        }

        list.sort(null);
        System.out.println(list.size());
        for (String s : list) {
            System.out.println(s);
        }

    }
}

Set의 기능만 알고 있으면 너무나도 쉬운 문제이다.

듣지도 못한 사람 리스트와 보지도 못한 사람 리스트를 담을 수 있는 Set을 만들고 contains를 통해서 두 Set에 포함된다면 결과 리스트에 추가한다.

문제는 정렬해서 보여주는 것을 원하므로 list.sort를 통해 정렬 시킨 다음에 출력한다.

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

백준 1620  (0) 2023.08.04
백준 7785  (0) 2023.08.03

관련글 더보기