Algorithm/kotlin

[프로그래머스/Kotlin] 한 번만 등장한 문자 (Lv. 0)

나연쓰 2024. 2. 13. 17:05

문제

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

 

제한사항

  • 0 < s의 길이 < 1,000
  • s는 소문자로만 이루어져 있습니다.

 

입출력 예

 

코드

class Solution {
    fun solution(s: String): StringBuilder {
        var answer = StringBuilder()
        var map = HashMap<Char, Int>()
        var array = ArrayList<Char>()
        
        for(element in s){
            map[element] = map.getOrDefault(element, 0) + 1
        }
        
        for((key, value) in map){
            if(value == 1){
                array.add(key)
            }
        }
        
        array.sort()
        
        for(i in array){
            answer.append(i)
        }
        
        println(array)
        
        return answer
    }
}

일단 hashmap을 이용해서 알파벳 별 빈도 수를 저장한다.

key에는 알파벳을, value에는 빈도수를 저장하고 반복문을 돌며 만약 value 가 1 즉, 한 번만 등장한다면 array 배열에 추가한다.

그리고 사전 순으로 정렬해야하기 때문에 sort를 진행했고 array에서 값을 하나씩 빼면서 정답 변수에 저장한다.

 

기억하고 싶은 부분

  • map.getOrDefault(element, 0)
map에서 element가 있다면 element에 해당하는 값을 반환하고
element가 없다면 0을 반환한다.

 

  • for((key, value) in map)
map 안에는 key, value 값이 있어서 위와 같이 key, value를 두면 각각의 key, value 값을 알 수 있다.

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/120896

 

프로그래머스

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

programmers.co.kr