Deep_Dev
article thumbnail

 


HashMap에 모두 추가해서 Value가 2인 값들을 뺐는데 

메모리가 되게 많이 차지한다 .

 

그리고 map에서 value로 키뽑는방법이 생각이 안났었다.

keyset을 이용해서 for문에서 value값을 뺴내고, value로 조건을 걸어주면 된다.

 

import java.util.*;

class Main {
    public static void main(String args[]) throws Exception {
        Scanner kb = new Scanner(System.in);
        int n=kb.nextInt();
        int m=kb.nextInt();
        HashMap<String, Integer> map = new HashMap<>();
        for(int i=0; i<n+m; i++) {
            String temp = kb.next();
            map.put(temp, map.getOrDefault(temp,0)+1);
        }
        int cnt=0;
        ArrayList<String> list= new ArrayList<>();
        for(String key:map.keySet()){
            Integer value=map.get(key);
            if(value==2){
                cnt++;
                list.add(key);
            }
        }
        Collections.sort(list);
        System.out.println(cnt);
        for(int i=0; i<list.size(); i++){
            System.out.println(list.get(i));
        }
    }
}