[ 프로그래머스 ] 자릿수 더하기 (연습문제)
코드
#include <iostream>
#include <vector>
using namespace std;
int solution(int n)
{
int answer = 0;
vector<int> sumArr;
int tmpN = n, tmp1, tmp2;
while(true){
if(tmpN/10 == 0){ //제일 큰 자리수의 값 넣기
sumArr.push_back(tmpN%10);
break;
} else { //큰 자리수를 제외한 값들을 벡터에 넣기
tmp1 = tmpN / 10;
tmp2 = tmpN % 10;
sumArr.push_back(tmp2);
tmpN = tmp1;
}
}
for(int i=0;i<sumArr.size();i++){
answer += sumArr[i];
}
return answer;
}
문제를 먼저 봤을때, 주어지는 N이 세자리수인가? 하고 생각했는데 엄청나게 크길래 이걸 어떻게 처리할지 먼저 고민했다. 그러다가 10으로 나누었을 때 나머지는 먼저 지정한 벡터 변수에 push하고 몫을 10으로 나누고,,, 뭐 이런걸 계속 반복해서 마지막에 10으로 나누었을 때 몫이 0이 되면 나머지를 넣고 break를 하도록 코드를 작성하니 한번에 완료.