출처: https://www.acmicpc.net/problem/1764
1764번: 듣보잡
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.
www.acmicpc.net
제출 날짜: 2021년 8월 7일 토요일
HashSet을 이용해서 풀었다.
듣도 못한 사람을 입력 받고, 보도 못한 사람을 입력 받으면서 해당 사람이 듣도 못한 사람인지 확인했다. 듣도 보도 못한 경우라면 따로 ArrayList에 담았고 이후에 정렬을 했다.
// 출처: 백준저지 1764번 듣보잡 https://www.acmicpc.net/problem/1764
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.StringTokenizer;
import java.io.IOException;
public class BOJ1764 {
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()); // 듣도 못한 사람의 수 N
int M = Integer.parseInt(st.nextToken()); // 보도 못한 사람의 수 M
HashSet<String> hsN = new HashSet<>(); // 듣도 못한 사람을 저장
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
hsN.add(st.nextToken());
}
ArrayList<String> answer = new ArrayList<>(); // 듣도 보도 못한 사람. 답
for (int i = 0; i < M; i++) {
st = new StringTokenizer(br.readLine());
String strM = st.nextToken(); // 보도 못한 사람이 듣도 못한 사람일 경우 답에 저장
if (hsN.contains(strM)) {
answer.add(strM);
}
}
Collections.sort(answer); // 사전 순으로 정렬
bw.write(answer.size() + "\n"); // 듣보잡의 수 출력
for (int i = 0; i < answer.size(); i++) { // 듣보잡의 명단 출력
bw.write(answer.get(i) + "\n");
}
bw.flush();
bw.close();
}
}
'알고리즘 > 백준저지' 카테고리의 다른 글
백준저지 2559번 수열 (0) | 2021.08.15 |
---|---|
백준저지 2605번 줄 세우기 (0) | 2021.08.15 |
백준저지 3040번 백설 공주와 일곱 난쟁이 (0) | 2021.08.12 |
백준저지 2563번 색종이 (0) | 2021.08.10 |
백준저지 1783번 병든 나이트 (0) | 2021.08.09 |