문제 풀이
이번 업뎃에서 고차함수 추적이 업데이트 되었지만.. 프로그래머스 에서는 아직인가.. ㅜㅜ
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