class Solution {
public String solution(String s) {
char[] alphabet = new char[26];
for (int i = 0; i < s.length(); i++) {
alphabet[s.charAt(i) - 97]++;
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < alphabet.length; i++) {
if (alphabet[i] == 1) sb.append((char) (i + 97));
}
return sb.toString();
}
}
중복값인 경우 한번만 출력하는 것은 Set
을 이용하겠지만 이 문제의 경우 중복인 경우 아예 제외시킨다.
그래서 알파벳 개수만큼 배열을 만들고 각 알파벳의 위치에 해당하는 인덱스에
알파벳이 읽히면 1씩 증가하도록 하여 알파벳 배열을 순차적으로 돌아 인덱스의 값이 1인 경우만 모아 문자열로 만들어준다.