문제
문자열 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
'Algorithm > kotlin' 카테고리의 다른 글
[프로그래머스/Kotlin] 컨트롤 제트 (Lv. 0) (0) | 2024.02.13 |
---|---|
[프로그래머스/Kotlin] 7의 개수 (Lv. 0) (0) | 2024.02.13 |
[프로그래머스/Kotlin] 가까운 수 (Lv. 0) (0) | 2024.02.13 |
[프로그래머스/Kotlin] 모스부호 (1) (Lv. 0) (0) | 2024.02.09 |
[프로그래머스/Kotlin] k의 개수 (Lv. 0) (0) | 2024.02.09 |