728x90
- 모든 문자열에 들어있는 공통 문자를 배열로 반환
(입력)
["jeon", "new"]
["jeonabcj", "jeondej", "jeonfgj"]
(출력)
# HashMap 사용
import java.util.ArrayList;
import java.util.HashMap;
public class Main {
private ArrayList<Character> solution(String[] words) {
ArrayList<Character> result = new ArrayList<>();
HashMap<Character, Integer> map = new HashMap<>();
for(char c : words[0].toCharArray()) {
map.put(c, map.getOrDefault(c, 0)+1);
}
for(int i=1; i<words.length; i++) {
HashMap<Character, Integer> tmp = new HashMap<>();
for(char c : words[i].toCharArray()) {
if(map.getOrDefault(c, 0)>0) {
map.put(c, map.get(c)-1);
tmp.put(c, tmp.getOrDefault(c, 0)+1);
}
}
map = new HashMap<Character, Integer>(tmp);
}
for(char key : map.keySet()) {
for(int i=0; i<map.get(key); i++) {
result.add(key);
}
}
return result;
}
public static void main(String[] args) {
Main T = new Main();
String[] s = new String[]{"jeon", "new"};
String[] s2 = new String[]{"jeonabcj", "jeondej", "jeonfgj"};
System.out.println(T.solution(s)); // [e, n]
System.out.println(T.solution(s2)); // [j, j, e, n, o]
}
}
반응형
'전.java' 카테고리의 다른 글
[Java] 공부시간 (0) | 2023.01.31 |
---|---|
[Java] 가장 가까운 시간 (0) | 2023.01.31 |
[Java] 음성인식 (0) | 2023.01.30 |
[Java] 팰린드롬 길이 (0) | 2023.01.30 |
[Java] 같은 빈도수 만들기 (1) | 2023.01.30 |