문제
문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
제한사항
- 0 < s 의 길이 < 1,000
- s 는 소문자로만 이루어져 있습니다.
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Arrays;
class Solution {
public String solution(String s) {
String answer = "";
HashMap<String, Integer> map = new HashMap<String, Integer>();
for(int i = 0; i < s.length(); i++) {
String str = s.substring(i, i+1);
map.put(str, map.getOrDefault(str, 0) + 1);
}
for(Entry<String, Integer> entrySet : map.entrySet()) {
if(entrySet.getValue() > 1) {
continue;
}
answer += entrySet.getKey();
}
char[] ch = answer.toCharArray();
Arrays.sort(ch);
answer = new String(ch);
return answer;
}
}
주어지는 문자열 s의 값을 처음부터 순회하며 해당 문자의 수를 HashMap 에 value 로 담았다.
그리고 value 가 1인 key 만 뽑아 answer 에 저장하였고, 사전 순으로 정렬하라고 하였으니 sort() 메서드를 사용했다.
출처
https://school.programmers.co.kr/learn/courses/30/lessons/120896