2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

[Swift] Programmers - 자릿수 더하기

2024. 2. 19. 20:18ㆍIOS/Swift-Algorithm (Programmers)
SMALL

https://school.programmers.co.kr/learn/courses/30/lessons/12931

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

* 자릿수 더하기 *

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.

ex) N = 123 -> 1 + 2 + 3 = 6을 return 하면 됩니다.

문제를 다시한번 살펴 본다면

자연수N이 주어진다면

그 N의 각 자릿 수의 합을 구해 반환해줘야하는

알고리즘입니다.

 

즉, 주어진 자연수의 각 자릿수의 합을 구하는

함수가 필요한 것이죠

문제만 보았을 때 어떠한 값의 합이 필요한 것을 볼 수 있고,

그리고 자릿 수의 합이라고 했기 때문에 반복문이 필요하겠죠

그렇다면 어떤 식으로 풀어 나아가면 되는가?

func solution(_ N: Int) -> Int {

먼저 함수의 이름은 solution, 매개변수로 N이라는 정수를 받고, 정수를 반환.

이렇게 정의된 함수는 주어진 정수 N의 각 자릿수의 합을 계산하여 반환하는 역할을 하게 되죠

var sum = 0 // 각 자릿수의 합을 저장할 변수를 초기화

먼저 변수를 생성해주어야 해요.

여기서는 각 자릿수의 합을 저장할 변수 sum을 0으로 초기화 시켜줍시다~

이 변수는 나중에 각 자릿수의 합을 누적할 거에요!

var number = N // 입력된 자연수를 복사하여 사용

다음으로, 입력된 자연수 N을 number 변수에 복사해줘요!

이 변수를 통해 입력된 자연수의 각 자릿수를 확인할 꺼예요!

while number > 0 {

이제 while 루프를 시작합니다. 이 루프는 number가 0보다 큰 동안 계속해서 실행해요.

이건 number에 아직 자릿수가 남아있는 동안에만 실행되는겁니다!

sum += number % 10 // 현재 자릿수를 sum에 더하기

루프 내에서는 현재 자릿수를 number ' % ' 10을 통해 구하고, 이를 sum에 더해서

' % ' 연산자는 나머지를 반환하므로 자연수를 10으로 나눈 나머지는 해당 자리의 숫자가 되겠죠?

그런다음에

number /= 10 // 다음 자릿수를 확인하기 위해 10으로 나눔
}

 number를 10으로 나누어 다음 자릿수를 확인할 수 있도록 해요.

그리고 루프가 종료되죠 number가 0보다 작거나 같아졌기 때문에

더 이상 확인할 자릿수가 없어요.

return sum // 최종적으로 구한 합을 반환

마지막으로 값을 반환하면 주어진 자연수의 각 자릿수의 합이 구해지죠.

 

총 코드는 아래와 같이 됩니다.

func solution(_ N: Int) -> Int {
    var sum = 0 // 각 자릿수의 합을 저장할 변수를 초기화
    var number = N // 입력된 자연수를 복사하여 사용

    // 입력된 자연수의 각 자릿수를 구해서 합 구하기
    while number > 0 {
        sum += number % 10 // 현재 자릿수를 sum에 더하기
        number /= 10 // 다음 자릿수를 확인하기 위해 10으로 나눔
    }

    return sum // 최종적으로 구한 합을 반환
}
728x90