# 문제 설명
- 해시맵과 정렬 적절히 섞어서 풀었다.
- 우선순위 큐가 필요한가?
class Solution {
func topKFrequent(_ words: [String], _ k: Int) -> [String] {
var dict: [String: Int] = [:]
var freq: [Int: [String]] = [:]
var result: [String] = []
for word in words {
dict[word, default: 0] += 1
}
for (key, value) in dict {
freq[value, default: []] += [key]
}
for key in freq.keys.sorted(by: {$0 > $1}) {
for str in freq[key]!.sorted(by: {$0 < $1}) {
result.append(str)
if result.count == k { return result }
}
}
return result
}
}