해시맵에 다떄려박고 해시맵을 value로 정렬해서 뽑아내서 리턴
정답
import java.util.LinkedList
class Solution {
fun frequencySort(s: String): String {
val strHashMap = hashMapOf<Char, Int>()
for (i in s){
strHashMap[i]=strHashMap[i]?.plus(1)?:1
}
val sortMap = sortMapByKey(strHashMap)
println(sortMap)
var res=""
for ((key,value) in sortMap){
for (j in 0 until value){
res+=key
}
}
println(res)
return res
}
fun sortMapByKey(map: Map<Char,Int>):LinkedHashMap<Char,Int>{
val entries = LinkedList(map.entries)
// entries.sortBy { it.value }
entries.sortByDescending { it.value }
val result = LinkedHashMap<Char, Int>()
for(entry in entries) {
result[entry.key] = entry.value
}
return result
}
}
'알고리즘' 카테고리의 다른 글
릿코드 2108. Find First Palindromic String in the Array 코틀린 (0) | 2024.02.14 |
---|---|
릿코드 169. Majority Element 코틀린 (0) | 2024.02.12 |
릿코드 49. Group Anagrams 코틀린 (0) | 2024.02.06 |
릿코드 387. First Unique Character in a String 코틀린 (0) | 2024.02.05 |
릿코드 1291. Sequential Digits 코틀린 (0) | 2024.02.02 |