[C++] 프로그래머스 자릿수 더하기
2020. 12. 5.
반응형

programmers.co.kr/learn/courses/30/lessons/12931

 

코딩테스트 연습 - 자릿수 더하기

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출

programmers.co.kr

 

1. 서론

 

1학년 1학기에 푸는 level 1문제. 문자열로 바꿔서 풀까 그냥 풀까 하다가 출제 의도가 그냥일 것 같아서 그냥 풀었다.

 

2. 문제 풀이

 

자연수 n이 주어지면 각 자릿수의 합을 구하는 문제다.

예를 들어 123이면 1 + 2 + 3 = 6 즉, 6이 답이다.

 

나는 고전적인 방법으로 풀었다. n % 10 값을 모아서 더하고, n / 10을 해서 n이 0이 될 때까지 다시 반복하는 식이다.

이 반복이 끝나면 답을 구할 수 있다.

 

3. 코드 설명

 

#include <iostream>

using namespace std;

int solution(int n)
{
    int answer = 0;
    
    while(1)
    {
        if (n <= 0) break;
        
        answer += n % 10;
        n /= 10;
    }
    
    return answer;
}

 

answer에 n % 10한 값을 계속 더해준다. n % 10을 하면 가장 마지막 자릿수부터 차곡차곡 더할 수 있다.

 

123 % 10 = 3 -> 123 / 10 = 12

12 % 10 = 2 -> 12 / 10 = 1

1 % 10 = 1 -> 1 / 10 = 0

 

이런 식이다.

 

 

 

 

 

 

 

 

반응형
myoskin