코딩테스트/프로그래머스

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

블로그 주인장 2023. 8. 29.

🎁 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/120896?language=java

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

🎁 문제 설명

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

🎁 입출력 예시

s result
"abcabcadc" "d"
"abdc" "abcd"
"hello" "eho"

🎁 코드

import java.util.*;

class Solution {
    public String solution(String s) {
        String answer = "";
        String[] sArr = s.split("");

        HashMap<String, Integer> hashmap = new HashMap<>();
        
        for(int i = 0; i < sArr.length; i++){
            hashmap.put(sArr[i], hashmap.getOrDefault(sArr[i],0) + 1);
        }
    
        for(Map.Entry<String, Integer> map : hashmap.entrySet()){
            if(map.getValue() == 1){
                answer += map.getKey();
            }
        }

        char[] c = answer.toCharArray();
        Arrays.sort(c);
        answer = new String(c);

        return answer;
    }
}

🎁 코드 설명

1) HashMap을 이용하여 문자열 s에 있는 각 문자의 갯수를 파악한다.

2) for문을 돌려서 value가 1인 경우만 answer에 key 값을 더해준다.

3) 사전순으로 정렬해야하기 때문에 answer를 배열로 치환하여 sort를 진행한다.

반응형

댓글