my_string 안의 자연수들의 합을 반환해준다.
import Foundation
func solution(_ my_string:String) -> Int {
let arr = my_string.components(separatedBy: ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"])
let result = arr.filter { $0 != "" }.map { Int($0)! }.reduce(0, +)
return result
}
참고(문자열 파싱) my_string에 A~Z, a~z까지 제거한 문자열을 배열로 반환한다.
.joined()를 이용해 하나의 문자열로 만들어 주지 않은 이유는 my_string 안에 숫자들이 합쳐지면 안되기 때문이다.
제거한 문자들은 배열 안에 "" 아무것도 없는 상태로 남아서 ""을 제거한 나머지 요소들을 추출해주고 Int로 형 변환시켜준다.
그리고 그 요소들을 더해준 값을 반환해준다.
import Foundation
func solution(_ my_string:String) -> Int {
return my_string.replacingOccurrences(of: "[a-zA-Z]", with: "", options: .regularExpression).split(separator: " ", omittingEmptySubsequences: true).map { Int($0) ?? 0 }.reduce(0, +)
}
replacingOccurrences() 메서드를 활용하여 특정 문자열을 변경한다.
string 안에 들어간 ~을 ~로 바꾸어 새로운 문자열로 반환해 달라라는 의미이다.
정규표현식[A-Za-z]을 활용해 A~Z, a~z까지 " "로 바꾸어 새로운 문자열로 반환해준다.
split() 메서드를 활용해서 " " 기준으로 쪼개주고 omittingEmptySubsequences: true로 설정해 빈 시퀀스를 빼준다.
Int로 형 변환을 시켜주고 더해준 값을 반환해준다.