Programmers

[iOS Swift] Lv.1 자릿수 더하기

pockpock 2024. 5. 8. 18:22
출처 : 프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12931
난이도 : Lv.1

 

문제 설명

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 soulution 함수를 만들어 주세요.
예를들어 N = 123이면 1+2+3 = 6을 return 하면 됩니다.

 

제한사항

  • N의 범위 : 100,000,000 이하의 자연수

입출력 예

N answer
123 6
987 24

 


1차 시도

import Foundation

func solution(_ n:Int) -> Int
{
    var answer:Int = 0

    while(n > 0){
        answer += n % 10
        n/=10
    }

    return answer
}

 

 1차 시도는 실패하였다... 이유는 상수n의 값을 바꾸려 했기 때문(n /= 10)

의문 : 상수 n의 값을 바꾸고 싶을때 는 어떻게 해야할까?

 

2차 시도

import Foundation

func solution(_ n:Int) -> Int
{
    var answer:Int = 0
    var number:Int = n // 상수 n을 변수 number로 치환
    
    while(number > 0){ 
        answer += number % 10
        number /= 10
    }

    return answer
}​

 

 

성공성공~ 우히히

 

 

3차 시도

 뭔가 값을 string으로 바꾼 후에 int로 치환하면 풀릴 것 같은데.. 싶어서 풀어봣다

import Foundation

func solution(_ n:Int) -> Int
{
    var answer:Int = 0

    for i in String(n){
        answer += Int(String(i))!
    }

    return answer
}

 

 

BUT....

 시간 초과로 아쉽게 실패.. 뭔가 더 만지면 될 것 같은디