https://www.acmicpc.net/problem/22233
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;
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
HashSet<String> set = new HashSet<>();
for(int i=0;i<N;i++){
String tmp = br.readLine();
set.add(tmp);
}
for(int i=0;i<M;i++){
String tmp = br.readLine();
String[] tmpList = tmp.split(",");
for(String x :tmpList){
if(set.contains(x)){
set.remove(x);
}
}
System.out.println(set.size());
}
}
}
HashSet을 이용해서 해당 키워드가 있으면 삭제하고 한 줄이 끝나면 set 크기를 출력하도록 했다.
set의 contains 메서드를 사용했다.
cnt 변수를 N으로 초기화 한 뒤 키워드 삭제할 때마다 cnt--해주는 방법이랑 시간차이가 나는지 궁금했는데 set 크기를 출력하는 방법이 미세하게 빠르긴했지만 큰 차이는 없는 것 같다 (아마도?)
'알고리즘' 카테고리의 다른 글
[PGS] 프로그래머스 - 소수찾기 (JAVA) (0) | 2023.02.16 |
---|---|
[BOJ] 14499번: 주사위 굴리기 (JAVA) (0) | 2023.02.06 |
[BOJ] 15663번 : N과 M (9) (JAVA) (0) | 2023.02.03 |
[Softeer] 장애물 인식 프로그램 (JAVA) (0) | 2023.02.02 |
[BOJ] 14503번: 로봇 청소기 (JAVA) (0) | 2023.01.30 |