카테고리 없음

<스위프트&알고리즘> 백준 11720번

studying develop 2020. 4. 17. 02:25

일단 

이 에러는 

 

 

이렇게 해결해야 하는거 같다.

 

근데 에러 의미가 이해가 안되네, 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