[백준/JAVA] 1764번 듣보잡

정은아·2024년 1월 30일
post-thumbnail

내 풀이

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

public class Main {
    public static void main(String[] args) throws Exception {

        // 두 줄의 문장중, 겹치는 단어 출력하기

        // 두 개의 테스트케이스를 TreeSet으로 입력받는다.
        // 겹치는 문장을 ArrayList로 따로 출력한다.

        Scanner sc = new Scanner(System.in);
        StringBuilder sb = new StringBuilder();

        int N = sc.nextInt();
        int M = sc.nextInt();

        Set<String> noListen = new TreeSet<>();
        Set<String> noLook = new TreeSet<>();

        List<String> answer = new ArrayList<>();

        for (int i = 0; i < N; i++) {
            noListen.add(sc.next());
        }

        for (int i = 0; i < M; i++) {
            noLook.add(sc.next());
        }

        for (String s : noLook) {
            if (noListen.contains(s)){
                answer.add(s);
            }
        }

        sb.append(answer.size());
        sb.append("\n");

        for (String s : answer) {
            sb.append(s);
            sb.append("\n");
        }

        System.out.println(sb.toString());
    }
}

느낀점

처음에는 답을 받아올 List를 일차원 배열로 뽑으려고 했다.
하지만 답의 크기를 출력하는 등에 있어서 문제가 있어서 고민하다
ArrayList로 받아오니까 해결됐다!

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글