정수
n
이 매개변수로 주어질 때n
의 각 자리 숫자의 합을 구하는 함수를 작성해야 한다.제한사항
- 0 ≤ n ≤ 1,000,000
입출력 예
n result 1234 10 930211 16
import Foundation
func solution(_ n:Int) -> Int {
var sum = 0
for i in String(n) {
sum += Int(i)
}
return sum
}
문자열의 각 문자를 바로 Int
로 변환할 수 없다는 점을 간과했다. i
는 Character
타입이기 때문에, 이를 정수로 변환하려면 추가적인 처리가 필요하다.
Int(i)
로 직접 변환하려고 했는데, 이는 컴파일 오류를 일으킨다. Character
타입을 문자열로 먼저 변환한 후 정수로 변환해야 한다는 점을 실수했다.
import Foundation
func solution(_ n:Int) -> Int {
var sum = 0
for i in String(n) {
if let digit = Int(String(i)) {
sum += digit
}
}
return sum
}
Character
타입을 Int
로 변환하기 위해서는 먼저 문자열로 변환해야 한다는 것을 되새겼다...if let
)을 통해 안전하게 값이 있는지 확인하고 사용하는 방법을 익혔다.nil
이 아닌지) 확인하는 습관이 중요함을 다시 한 번 깨달았다.