문자열 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());
}
}
'programmers' 카테고리의 다른 글
[JAVA] 다항식 더하기 (0) | 2024.03.15 |
---|---|
[JAVA] 약수 구하기 - 배열크기 (0) | 2024.03.15 |
[JAVA] 영어가 싫어요 replace() (0) | 2024.03.15 |
[JAVA] 암호 해독 (0) | 2024.03.15 |
[JAVA] 369게임 (0) | 2024.03.15 |