❓문제


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



🚫제한


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



💻입출력 예


Nanswer
1236
98724

입출력 예 #1
문제의 예시와 같습니다.
입출력 예 #2
9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.














📝해결


while문 + 누적합

public class Solution {
    public int solution(int n) {

		int sum = 0;
        
        while(n > 0) {
			sum += n % 10;
			n /= 10;
		}

        return sum;
	}
}
  • n>0 조건은 n이 양수라면 무조건 true. 즉, 해당 while문은 무조건 실행되는 것.
    – 반복문을 반복하다 n이 0이 되면 실행 종료.
  • n이 123이라 가정할 때, 나누기 10을 한 나머지는 ‘3’ 이를 누적합.
  • n = n/10, 즉 n/10의 몫인 ‘12’가 곧 n이 됨.
    – 위의 과정을 반복하면 1+2+3의 결과를 얻을 수 있음.






💭마무리

  • Level_1 / 13:34
  • Point
    – while문을 사용한 누적합 구하기

누적합을 구해야 한다는 생각이 들면 자연스럽게 for문이 먼저 떠오른다.
확실히 while문 보다는 for문을 많이 사용해서 그런걸까🤔
나머지와 몫을 활용하여 각 자릿수를 구하는것도 앞으로 많이 쓰일 것 같다!
머릿속에 잘 정리해놔야지ㅎㅎㅎㅎㅎ


profile
Here And Now

0개의 댓글