728x90
- 관련 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/12931
자연수 N이 주어지면, 각 자릿수의 합을 구하는 문제이다.
1) 정수 result 선언 및 0으로 초기화
2) 입력 받은 값을 10으로 나누었을 때, 나머지 값 result에 더하기
3) 입력 받은 값을 10으로 나누기
4) 입력 받은 값이 0이 될 때까지 2)와 3)의 동작 반복
// 풀이 1
#include <iostream>
using namespace std;
int solution(int n)
{
int answer = 0;
while (n > 0)
{
answer += (n % 10);
n /= 10;
}
return answer;
}
숫자가 아닌 문자열로 변환 후 각 index 값을 숫자로 다시 변환하여 더해주는 방법도 있다.
이 방법을 사용하면 각 자리수를 명확히 확인할 수 있지만, 문자열로 변환 후 숫자로 재변환해야 하는 번거로움도 있다.
// 풀이 2
#include <string>
using namespace std;
int solution(int n)
{
int answer = 0;
string str = to_string(n);
for (int idx = 0; idx < str.size(); idx++)
answer += (str[idx] - '0');
return answer;
}
728x90
'Algorithm > Programers' 카테고리의 다른 글
피자 나눠 먹기 (2) (0) | 2023.06.06 |
---|---|
피자 나눠 먹기 (1) (0) | 2023.06.06 |
모스부호 (1) (0) | 2023.06.05 |
A로 B 만들기 (0) | 2023.06.05 |
세균 증식 (0) | 2023.06.05 |
댓글