본문 바로가기

알고리즘 자료구조/프로그래머스

[프로그래머스] 한 번만 등장한 문자

728x90

🖊️문제

문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return하도록 solution함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.

 

 

 

🖊️문제풀이

import java.util.*;

class Solution {
    public String solution(String s) {
        String answer = "";
        char[] input = s.toCharArray();
        Hashtable<Character,Integer> hash = new Hashtable<>();
        
        for(char c: input) {
        	hash.put(c, hash.getOrDefault(c, 0)+1);
        }
        
        List<Character> list = new ArrayList<>(hash.keySet());
        list.sort(null);
        for(char key : list) {
        	if(hash.get(key)==1) {
        		answer+=key;
        	}
        }
        
        return answer;
    }
}

HashTable에 key에는 문자열에 들어있는 문자를 하나씩 떼어서 저장하고, value에는 기본값으로 1을 저장하고 동일 문자가 있을 경우 1을 증가시켜 저장시킨다.

value값이 1인 key들만 list에 저장시키고 sort시킨다음 문자열에 붙여서 문제를 해결했다.

728x90