<알고리즘 문제풀이&연습>/[C++] 백준, 프로그래머스 등등

[프로그래머스] LEVEL 1 : 자릿수 더하기 (C++)

BlockDMask 2018. 9. 17. 00:39
반응형

안녕하세요.  BlockDMask 입니다.

이제 날씨도 선선한게, 노트북 딱 들고 공원 벤치에 앉아서 코딩하기 딱 좋은 날씨 인거 같아요 그쵸?


0. 제목

프로그래머스(programmers) LEVEL 1 자릿수 더하기 입니다.


1. 문제 설명

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어주세요.

예를들어 N = 2345 이면 2+3+4+5 = 14 를 return 하면 됩니다.


2. 풀이 과정

문제를 잘 읽어 보면 2345를 하나씩 분리해서 더하면 됩니다.

매개변수로 들어오는 2345를 일의자리를 계속 분리하고 일의자리를 없애는 방식으로 진행하면됩니다.

일의 자리를 구하는 것10으로 나눈 나머지를 구하면 해결됩니다.

일의 자리를 없애는 것10으로 나눈 몫으로 해결됩니다.


1> 2345를 10으로 나눈 나머지

2345 % 10 = 5 이고, 맨 끝자리 5를 구했으니까 234만 남을 수 있도록

2> 2345를 10으로 나눈다

- 2345 / 10 = 234 몫이 234가 남게 됩니다.

3> 234를 10으로 나눈 나머지

- 234 % 10 = 4 이고, 맨 끝자리 4를 구했으니까 23만 남을 수 있도록 

4> 234를 10으로 나눈다.

- 234 / 10 = 23 으로 남게 됩니다. (몫)

5> 23 % 10 = 3 이 남고 (3을 구했고)

6> 23 / 10 = 2

7> 2 % 10 = 2

8> 2 / 10 = 0 (반복문의 종료조건)


위와 같은 순서로 구하면됩니다. %로 나눈 나머지들을 다 더하면 됩니다. 


3. 소스 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
int solution(int n)
{
    int answer = 0;
 
    while(n != 0)
    {
        answer = answer + n%10;
        n = n/10;
    }
 
    return answer;
}
cs

4. 채점



오늘도 읽어 주셔서 감사합니다.

제가 시간들여 작성한 포스팅이 당신에게 도움이 되었으면 좋겠습니다.

반응형