▶ URL
https://www.acmicpc.net/problem/1764
▶ 문제

▶ 코드 및 리뷰
듣지 못한 사람의 이름이 N번 줄 발생하고, 보도 못한 사람의 이름이 M번 표출된다.
문제에서, 듣지 못한 사람 3명과
ohhenrie
charlie
baesangwook
보도 못한 사람 4명
obama
baesangwook
ohhenrie
clinton
이 주어졌다!
⭐ 문제를 보면 듣지 못한 사람과 보도 못한 사람의 이름은 중복이 없다고 한다.
먼저 듣지 못한 사람을 입력받을 때, 중복이 없다고 하여 Set을 사용하여 명단을 채워넣었다.
그리고 최종 제출할 때, 명단을 사전 순으로 출력해야하기 때문에 TreeSet을 사용했다.
더 좋은 방법은 많을테고, 나의 풀이는 일부기 때문에 참고만 하길 바란다!
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());
Set<String> set = new TreeSet<>(); // 듣지못한 사람을 채워넣는 곳
int count = 0; // 최종 듣도, 보도 못한 사람의 개수
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
for (int i = 0; i < n; i++) {
set.add(br.readLine());
}
Set<String> result = new TreeSet<>();// 듣도, 보도못한 사람을 채워넣는 곳
for (int i = 0; i < m; i++) {
String str = br.readLine();
if(set.contains(str)){ // 듣지 못한 사람의 명단에 str과 일치하는 이름이 있다면 듣도, 보도 못한 사람!
count++;
result.add(str);
}
}
StringBuilder sb = new StringBuilder();
sb.append(count).append('\n');
for (String s : result) {
sb.append(s).append('\n');
}
System.out.println(sb);
}
}
제출 결과는 아래와 같다!
오늘도 즐거운 코딩🌰
수정, 지적할 사항이 있다면 댓글로 알려주세요! 🐿️
'코테' 카테고리의 다른 글
[백준] 10818 최소, 최대 (0) | 2025.01.22 |
---|---|
[백준] 1269 대칭 차집합 (1) | 2024.09.08 |
[프로그래머스] 암호 해독 (1) | 2024.07.23 |
[프로그래머스] 옷가게 할인 받기 (0) | 2024.07.03 |
[프로그래머스] 피자 나눠 먹기 (1) (0) | 2024.07.02 |