적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

Algorithm/Programmers

[Swift 알고리즘] Programmers 자릿수 더하기

hongssup_ 2022. 1. 20. 00:25
반응형

Level 1 연습문제

자릿수 더하기

문제 설명
 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
제한 사항
- N의 범위 : 100,000,000 이하의 자연수

 

입출력 예시

print(solution(987)) //24

 

내답안

import Foundation

func solution(_ n:Int) -> Int {
    var answer:Int = 0
    let arr = String(n).map { Int(String($0))! }
    for i in 0...arr.count-1 {
        answer += arr[i]
    }
    return answer
}

굳이 map으로 배열을 만들어주지 않아도 다음과 같이 String(n)으로 바로 쪼개서 사용할 수가 있다.. ㅎ

 

모범답안

import Foundation

for solution(_ n: Int) -> Int {
    var answer:Int = 0
    for i in String(n) {
        answer += Int(String(i))!
    }
    return answer
}

 

고차함수 사용답안

import Foundation

func solution(_ n:Int) -> Int
{
    return String(n).reduce(0, {$0+Int(String($1))!})
}
728x90
반응형