일단
이 에러는
이렇게 해결해야 하는거 같다.
근데 에러 의미가 이해가 안되네, initializer init이 이게 Int() 캐스팅 말하는거 같고 character가 그렇게 되려면 StringProtocol에 따라야 한다는 말같다.
import Foundation
readLine()
let str = readLine()!
//let arr = str?.split(separator: "")
var arr : [Character] = []
for index in str.indices{
arr.append( str[index] )
}
var sum : Int = arr.map{Int($0.asciiValue! - "0".first!.asciiValue!)}.reduce(0, { (result :Int, element:Int) -> Int in
return result + element
})
print(sum)
ㄴㅐ가 짠건데, 아래 처럼 String 타입을 그냥 순회하면 되는데, 그걸 안하고 indice로 접근해 버림. 약간 reduce를 사용해야지 해서 좀 그런거긴 한데,
reduce 인자는 숫자랑,함수 두개 이렇게 받는듯
var N = readLine()!;
var str = readLine()!
var sum = 0;
for x in str{
// print(x)
sum = sum + Int(String(x))!
}
print(sum)
func reduce<Result>(_ initialResult: Result, _ nextPartialResult: (Result, Element) throws -> Result) rethrows -> Result