문제 풀이

이번 업뎃에서 고차함수 추적이 업데이트 되었지만.. 프로그래머스 에서는 아직인가.. ㅜㅜ

func solution(_ s:String) -> [Int] {
    return s.split { !$0.isNumber }
    .map { Int(String($0))! }
    .reduce(into: [Int:Int]()) { $0[$1] = $0[$1] != nil ? $0[$1]! + 1 : 1 }
    .sorted { $0.value > $1.value }
    .map { $0.0 }
}

이렇게 하고 싶었지만 10초 이상 초과로 실패 한다 ㅎ 어쩔 수 없이 나누어 주자

그리고 문자열에서 숫자를 기준으로 문자열 만들고 싶을때에는 s.split{ !0.isNumber }를 이용해보자 꿀팁

import Foundation

func solution(_ s:String) -> [Int] {
    let s = s.split { !$0.isNumber }.map { Int(String($0))! }.reduce(into: [Int:Int]()) { $0[$1] = $0[$1] != nil ? $0[$1]! + 1 : 1 }
    
    return s.sorted { $0.value > $1.value }.map { $0.0 }
}

참고 : https://programmers.co.kr/learn/courses/30/lessons/64065