programmers
[JAVA] ☆ 한 번만 등장한 문자 - 문자열정렬
아잠만_
2024. 3. 15. 10:27
문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
입출력 예 #1
"abcabcadc"에서 하나만 등장하는 문자는 "d"입니다.
풀이 1) toCharArray > Arrays.sort를 통한 문자열 정렬
import java.util.Arrays;
class Solution {
public String solution(String s) {
String answer = "";
for(int i=0; i<s.length(); i++){
for(int j=0; j<s.length();j++){
if(i!=j && s.charAt(i)==s.charAt(j)){
s=s.replace(""+s.charAt(i)," ");
}
}
}
answer = s.replace(" ","");
char[] chars = answer.toCharArray();
Arrays.sort(chars);
answer = new String(chars);
return answer;
}
}
풀이 2) Stream을 활용한 풀이
import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;
class Solution {
public String solution(String s) {
return Arrays.stream(s.split(""))
.collect(Collectors.groupingBy(s1 -> s1))
.entrySet()
.stream()
.filter(entry -> entry.getValue().size() <= 1)
.map(Map.Entry::getKey)
.sorted()
.collect(Collectors.joining());
}
}