
import java.util.Arrays;
import java.util.List;
import java.util.Collections;
import java.util.stream.Collectors;
class Solution {
public String solution(String s) {
String answer = "";
String[] alpha = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
List<String> list = Arrays.stream(s.split("")).collect(Collectors.toList());
for(int i=0; i<26;i++) {
if(Collections.frequency(list,alpha[i])==1) answer += alpha[i];
}
return answer;
}
}
내가 알파벳배열만든게 너무 길다고 생각했는데, 다른풀이를 구경하다가 괜찮은 풀이가 보여서 가져왔다.
class Solution {
public String solution(String s) {
int[] alpha = new int[26];
for(char c : s.toCharArray()){
alpha[c - 'a']++;
}
StringBuilder answer = new StringBuilder();
for(int i = 0; i < 26; i++){
if(alpha[i] == 1){
answer.append((char)(i + 'a'));
}
}
return answer.toString();
}
}
숫자 배열의 인덱스별로 알파벳이라 생각하고, 해당 알파벳이 나올때마다 해당 인덱스의 값을 +1해주는 방식을 사용했다.