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));
}
}
}
'📚 코딩테스트 > 백준 & 프로그래머스' 카테고리의 다른 글
[프로그래머스][JAVA]Level 1 : 시저암호 (0) | 2023.02.08 |
---|---|
[백준][JAVA]1620번 : 나는야 포켓몬 마스터 이다솜 (0) | 2023.01.05 |
[백준][JAVA]11047번 : 동전 0 (0) | 2023.01.02 |
[백준][JAVA]11899번 : 괄호 끼워넣기 (1) | 2022.12.31 |
[백준][JAVA]16499번 : 동일한 단어 그룹화하기 (0) | 2022.12.31 |