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 // 최종적으로 구한 합을 반환
}
'IOS > Swift-Algorithm (Programmers)' 카테고리의 다른 글
[Swift] Programmers - 나머지가 1이 되는 수 찾기 (0) | 2024.02.19 |
---|---|
[Swift] Programmers - 약수의 합 (0) | 2024.02.19 |
[Swift] Programmers - 평균 구하기 (0) | 2024.02.19 |
[Swift] Programmers - 짝수와 홀수 (0) | 2024.02.19 |
[Swift] Programmers - 배열의 평균값 (0) | 2024.02.19 |