백준
[백준] 1764 듣보잡 (JAVA)
sami355
2022. 3. 6. 16:44
https://www.acmicpc.net/problem/1764
1764번: 듣보잡
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.
www.acmicpc.net
풀이
이 문제는 단순히 자바의 해쉬셋에 대해서 물어보는 문제이다. 우선 해쉬셋하나와 링크드 리스트를 하나 선언하고 그다음 듣도 못한 인원의 이름을 해쉬셋에 저장한다. 그다음 보도 못한 인원의 이름을 입력받는데 이때 만약 보도 못한 인원의 이름이 해쉬셋에 있다면(보도못한 인원의 이름이 듣도 못한 인원의 의 해쉬셋에 있다면 ) 링크드리스트에 추가를 한다.
코드
import java.io.*;
import java.util.*;
class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
String temp;
HashSet<String> hs = new HashSet<String>();
ArrayList<String> ans = new ArrayList<>();
for (int i=0; i<N; i++){
hs.add(br.readLine());
}
for (int i=0; i<M; i++){
temp = br.readLine();
if(hs.contains(temp)){
ans.add(temp);
}
}
Collections.sort(ans);
bw.write(String.valueOf(ans.size()));
for (String s : ans) {
bw.write("\n" + s);
}
bw.flush();
bw.close();
}
}