2022-12-18 00:19:05 +09:00
|
|
|
// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/131128
|
|
|
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
class Solution {
|
|
|
|
|
public String solution(String X, String Y) {
|
|
|
|
|
String answer = "";
|
2022-12-18 00:46:56 +09:00
|
|
|
LinkedList<Integer> linkedList = new LinkedList<>();
|
|
|
|
|
HashMap<Integer, Integer> hash = new HashMap<>(), hash2 = new HashMap<>();
|
|
|
|
|
for(char y : Y.toCharArray()){
|
|
|
|
|
int number = Character.getNumericValue(y);
|
|
|
|
|
hash.put(number,hash.getOrDefault(number,0)+1);
|
2022-12-18 00:19:05 +09:00
|
|
|
}
|
2022-12-18 00:46:56 +09:00
|
|
|
for(char x : X.toCharArray()){
|
|
|
|
|
int number = Character.getNumericValue(x);
|
|
|
|
|
hash2.put(number,hash2.getOrDefault(number,0)+1);
|
2022-12-18 00:19:05 +09:00
|
|
|
}
|
|
|
|
|
for(Integer key : hash.keySet()){
|
|
|
|
|
if(hash2.getOrDefault(key,0)==0) continue;
|
2022-12-18 00:46:56 +09:00
|
|
|
int count = Math.min(hash.get(key),hash2.get(key));
|
|
|
|
|
for(int z = 0; z < count; z++)
|
|
|
|
|
linkedList.add(key);
|
2022-12-18 00:19:05 +09:00
|
|
|
}
|
2022-12-18 00:46:56 +09:00
|
|
|
answer = Arrays.stream(linkedList.toArray()).map(String::valueOf)
|
|
|
|
|
.sorted(Comparator.reverseOrder()).collect(Collectors.joining());
|
|
|
|
|
return (linkedList.isEmpty())?"-1":((answer.charAt(0)=='0')?"0":answer);
|
2022-12-18 00:19:05 +09:00
|
|
|
}
|
|
|
|
|
}
|