[Java] 자릿수 더하기 (programmers)

Haeun Noh·2022년 9월 22일
0

programmers

목록 보기
20/64
post-thumbnail

0922


문제 설명

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


제한사항

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

입출력 예

Nanswer
1236
98724

입출력 예 설명

입출력 예 #1
문제의 예시와 같습니다.

입출력 예 #2
9 + 8 + 7 = 24이므로 24return 하면 됩니다.


소스 코드

import java.util.*;

public class Solution {
    public int solution(int n) {
        int sum = 0;
        String strN = n+"0";
        int[] arrN = new int[strN.length()];

        //for문을 이용해 한 자릿수씩 arrN에 저장한다.
        //arrN에 들어있는 값을 for문을 이용해 합계를 구한다.
        for ( int i = 0; i < strN.length(); i++ ) {
            arrN[i] = n%10;
            n /= 10;
            sum += arrN[i];
        }

        return sum;
    }
}

소스 풀이

        int sum = 0;
        String strN = n+"0";
        int[] arrN = new int[strN.length()];

각 자릿수의 합계를 저장할 sum을 0으로 초기화한다.
외부에서 입력받은 n의 길이를 알아보기 위해 문자열 0n에 더해 n의 숫자를 문자열로 변환하여 strN에 저장한다.
위에서 문자열로 변환한 n의 크기를 나타내는 strN.length()만큼의 크기를 가진 arrN 배열을 선언한다.arrN 배열은 n의 자릿수 하나하나를 저장할 배열이다.
.length()는 문자열의 크기를 구하는 것이고, .length는 배열의 크기를 구하는 것이니 헷갈리지 않도록 하자.


        //for문을 이용해 한 자릿수씩 arrN에 저장한다.
        //arrN에 들어있는 값을 for문을 이용해 합계를 구한다.
        for ( int i = 0; i < strN.length(); i++ ) {

for문0부터 strN.length()만큼 반복해 arrN[i]에 들어있는 자릿수들을 다 읽되, 불필요한 반복을 하지 않도록 한다.


            arrN[i] = n%10;
            n /= 10;

arrNn10으로 나눈 나머지를 저장해, 마지막 자릿수를 입력한다.
입력한 자릿수는 10으로 나눈 몫을 다시 n에 저장함으로써 다음 자릿수를 저장할 수 있도록 한다.


            sum += arrN[i];
        }

        return sum;
    }
}

자릿수가 들어있는 arrN 배열의 값을 sum에 누적한다.

for문이 종료된 후 자릿수의 합계인 sumreturn한다.



profile
기록의 힘을 믿는 개발자, 노하은입니다!

0개의 댓글