https://school.programmers.co.kr/learn/courses/30/lessons/12931
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
제한사항
- N의 범위 : 100,000,000 이하의 자연수
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
while(n!=0) {
answer += n%10;
n /= 10;
}
return answer;
}
}
자연수N이 123이라면 1+2+3, 4567이라면 4+5+6+7을 해야하며
반복문을 이용해야한다
반복문 while을 이용해 변수 answer에 n을 10으로 나눈 나머지값을 저장한다 (answer += n%10;)
만약 자연수n이 123이라면 첫번째에서 1의자리인 3이 나오게 된다 그 후 예시로 든 가상의 숫자 123을 10으로 나누면
12.3이나오게 되지만 소수점은 저장하지 않는 int타입이기때문에 12만 n에 저장이 된다(n /= 10;)
다시 반복문이 작동되어 12를 10으로 나눈 나머지값인 1의 자리인 2가 후위연산자에 의해 저장되어있던 값 3과 더해진다(answer += n%10;)
그 후 12를 10으로 나눠 1.2가 되었지만 위와같은 이유로 n에는 1만 저장되게 된다.
결국 처음 자연수n의 모든 자리수가 변수 answer에 저장되게 되고 조건식(n!=0)에 의해 자연수 n이 0이 아닐때까지 반복되던 반복문 while이 자연수가 0이 되면 더이상 진행되지 않기 때문에 자연수 n의 모든 자리수가 더해진 값 answer가 반환이 된다
'프로그래머스 문제풀어보기' 카테고리의 다른 글
[Lv.0] 자연수 뒤집어 배열로 만들기 (0) | 2022.10.11 |
---|---|
[Lv.0] 정수 제곱근 판별 (0) | 2022.10.10 |
[Lv.0] 약수의 합 (0) | 2022.10.06 |
[Lv.0] 평균 구하기 (0) | 2022.10.06 |
[Lv.0] 짝수와 홀수 (0) | 2022.10.06 |
댓글