헝D의 일기장
article thumbnail

https://www.acmicpc.net/problem/22233

 

22233번: 가희와 키워드

1번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, floyd, os가 됩니다. 2번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, os가 됩니다. map은 1번째 글과 2번째 글에 중복으로 등장하였음을

www.acmicpc.net

 

 

나의풀이

import java.util.*;
import java.io.*;
public class Main {
    public static void main(String args[]) throws Exception {
        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());
        
        Set<String> arr=new HashSet<>();
        
        for(int i=0;i<n;i++){
            arr.add(br.readLine());
        }
        
        for(int i=0;i<m;i++){
            String temp[]=br.readLine().split(",");
            for(String s:temp){
                if(arr.contains(s)){
                    arr.remove(s);
                }
            }
            bw.write(String.valueOf(arr.size())+"\n");
        }
        
        bw.flush();
        br.close();
        bw.close();
    }
}

 

Tip.

처음에 HashSet 대신에 ArrayList를 썼을때는 시간초과가 발생했다.

ArrayList는 순서 정보까지 저장하기 때문에  HashSet을 쓸 수 있다면 쓰는 것이 시간 절약에 매우 도움이 된다! HashSet은 순서 정보를 저장하지 않기 떄문.

profile

헝D의 일기장

@헝D

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!