[프로그래머스] Level1 - 자릿수 더하기

ERror.ASER·2020년 7월 23일
0

프로그래머스

목록 보기
21/54
post-thumbnail

프로그래머스(Level1) - 자릿수 더하기


문제 설명

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

제한사항

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

입출력 예

입출력 예 #1

문제의 예시와 같습니다.

입출력 예 #2

9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.


풀이

첫번째 방법) n을 10으로 나눈 나머지를 answer에 더해준다. 그리고 n을 10으로 나눠준다. 이것을 n이 0이 될때까지 반복해주면 된다. 그러면 맨 뒷자리에서부터 한자리씩 접근하여 각 자리수를 더한 값을 구할 수 있다.

#include <iostream>

using namespace std;

int solution(int n){
    int answer = 0;
    
    while( n > 0 ){
        answer += n%10;
        n /= 10;
    }
    
    return answer;
}

두번째 방법) ascii 숫자로 변환하여 문제를 푸는 방법이 있다.

#include <iostream>
#include <string>

using namespace std;

int solution(int n)
{
    int answer = 0;
    string s = to_string(n);

    for(int i = 0; i < s.size(); i++)
        answer += (s[i] - '0');

    return answer;
}
profile
지우의 블로그

0개의 댓글