이때 튜플은 빈도수로 많이 나온 값이 앞에 오도록 정렬하는 문제입니다
import Foundation
func solution(_ s:String) -> [Int] {
var answer: [Int:Int] = [:]
var list = s
while !list.isEmpty {
var tmp = ""
if list.removeLast() == "}" {
if list.last! == "}" {
list.removeLast()
}
while list.last != "{" {
tmp += String(list.removeLast())
}
let mappedValue = tmp.reversed().map { String($0) }.joined()
let splitedValue = mappedValue.split(separator: ",").map { Int($0)! }
splitedValue.forEach { num in
if let value = answer[num] {
answer[num] = value + 1
} else {
answer[num] = 1
}
}
list.removeLast()
}
list.removeLast()
}
return answer.sorted(by: { $0.value == $1.value ? $0.key < $1.key : $0.value > $1.value }).map { $0.key }
}
'Algorithm > programmers' 카테고리의 다른 글
프로그래머스 - 메뉴 리뉴얼 feat. dfs (0) | 2024.10.08 |
---|---|
프로그래머스 - k진수에서 소수 개수 구하기 (0) | 2024.10.05 |
프로그래머스 - [1차] 캐시 (1) | 2024.10.04 |
프로그래머스 - 주차 요금 계산 (2022카카오 블라인드 채용) (0) | 2024.10.04 |
프로그래머스 - 두 큐 합 같게 만들기 (2022카카오 테크 인턴쉽) 시간초과 해결 (0) | 2024.10.04 |