본문 바로가기
코딩테스트/자바 Level 0

[Java] 한 번만 등장한 문자

by onggury 2023. 7. 7.

문제

문자열 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