► Swift/Programmers

[Programmers] Swift 알고리즘 | Lv.0 자릿수 더하기

다람트리 2024. 1. 30. 20:06
반응형

🔒 문제 설명

정수 n 매개변수로 주어질  n 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요


🔒 제한사항  

  • 0 ≤ n ≤ 1,000,000

🔒 입출력 예

n result
1234 10
930211 16

🔒 입출력 예 설명

입출력 예 #1

  • 1 + 2 + 3 + 4 = 10을 return합니다.

입출력 예 #2

  • 9 + 3 + 0 + 2 + 1 + 1 = 16 return합니다.

 

 

🔐 solution of mine

Array() → Int를 Array<Character>로 바꾸는 방법

Array.map()

Int(String())! → Character를 Int로 바꾸는 방법

Array.reduce()

import Foundation

func solution(_ n:Int) ->Int{
    var arr = Array(String(n))
    var int = arr.map({(num:Character)-> Int in
    return Int(String(num))!
    })
    return int.reduce(0,+)
}

print(solution(1234)) // expected result: 10
print(solution(930211)) // expected result: 16

 


 

🔐 solution of others

String()

Array.map{} → String을 Array<String>으로 바꾸는 방법

Array.reduce()

import Foundation

func solution(_ n:Int) ->Int{
    return String(n).map{Int(String($0))!}.reduce(0,+)
}

 

🔐 solution of others

for 문

"\()" → 문자로 바꾸는 방법

Int(String())! → Character를 Int로 바꾸는 방법

import Foundation

func solution(_ n:Int) ->Int{
    var arr = "\(n)"    // String 1234
    var answer:Int = 0
    
    for i in arr {
        answer += Int(String(i))!
    }
    
    return answer
}

 

🔐 solution of others

while 문

import Foundation

func solution(_ n:Int) ->Int{
    var left:Int = n
    var answer:Int = 0
    
    while left>0 {
        answer += left%10
        left /= 10
    }
    
    return answer
}

print(solution(1234)) // expected result: 10
print(solution(930211)) // expected result: 16

요.. 이방법은 좀 신박합니다 


 
반응형