알고리즘/백준

1764_듣보잡

베리영young 2025. 1. 20. 17:14

사용 알고리즘: set

사용 언어: java

 

package week33;

import java.io.*;
import java.util.*;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int n = Integer.parseInt(st.nextToken());
		int m = Integer.parseInt(st.nextToken());
		
//		List<String> 듣도 = new ArrayList<>();
		Set<String> 듣도 = new HashSet<>();
		
		for (int i = 0; i < n; i++) {
			듣도.add(br.readLine());
		}
		
		Queue<String> answer = new PriorityQueue<>((a,b) -> a.compareTo(b));
		for (int i = 0; i < m; i++) {
			String name = br.readLine();
			if(듣도.contains(name)) {
				answer.add(name);
			}
		}
		
		StringBuilder sb = new StringBuilder();
		sb.append(answer.size() + "\n");
//		System.out.println(answer.size());
		while(!answer.isEmpty())
			sb.append(answer.poll() + "\n");
		System.out.println(sb);
	}

}

 

 

어렵진 않은데 은근히 애먹은 문제...

List가 그렇게 시간이 오래 걸린다고..?
Set이나 Map을 사용하는 것보다 많이 오래 걸리는 거 같다...