CodeKata/Programmers

[CK] 연습문제 > 자릿수 더하기

anothel 2021. 11. 27.

문제 설명

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

제한사항
  • N의 범위 : 100,000,000 이하의 자연수

입출력 예

N answer
123 6
987 24
입출력 예 설명

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

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

 

Solution

#include <iostream>

using namespace std;
int solution(int n) {
  int answer = 0;

  while (0 < n) {
    answer += n % 10;
    n /= 10;
  }

  return answer;
}

 

남의 코드

#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');

    // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
    cout << "Hello Cpp" << endl;

    return answer;
}

 

후기

 내가 푼 방식은 400명이 넘게 이 방식으로 풀었다. 그리고 남의 코드에서는 문자열로 바꿔서 풀었는데 앞으로도 정 안되면 문자열로 바꾸는 걸 고민해 보도록 하겠다.

 

(url: https://programmers.co.kr/learn/courses/30/lessons/12931)

 

댓글0