ALGORITHM/프로그래머스 | 백준 | 삼성 | 카카오
[백준] 1764번 듣보잡
SZCODE
2020. 8. 23. 22:27
https://www.acmicpc.net/problem/1764
1764번: 듣보잡
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. ��
www.acmicpc.net
문제 : 듣도 보도 못한 명단을 구하기 문제 풀이: 듣지 못한 명단을 HashSet에 넣어줍니다. 보지 못한 명단이 HashSet에 포함되어 있을 경우 ArrayList에 넣어주고 count 변수를 세줍니다. list를 정렬하여 출력해줍니다. 몰랐던 점: 처음에 듣지 못한 명단을 ArrayList에 넣어줬는데 시간초과가 났습니다. ArrayList는 순서도 같이 관리해야하기 때문에 시간이 오래걸립니다. 반면에 HashSet은 순서를 보장할 필요 없이 그냥 찾습니다. |
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
HashSet<String> hs = new HashSet();
ArrayList<String> list = new ArrayList();
for (int i = 0; i < N; i++) {
hs.add(sc.next());
}
int count = 0;
for (int i = 0; i < M; i++) {
String s = sc.next();
if(hs.contains(s)){
list.add(s);
count++;
}
}
Collections.sort(list);
System.out.println(count);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}