#12947 하샤드 수
문제 정리
10의자리 100의자리 이런거 다 더해서 원래 수에 나눠보기
생각해보기
10의 자리 -> 10으로 나눠서..나머지 뭐 이렇게 하면 될듯? 큰 자리수부터
근데 12345 이런 수를 배열같은데다 넣어서 arr[0] = 1, arr[1] = 2 이렇게 할 수 있는 방법은 없나?
string이런걸로 변환해야 하나 to_string 이용해서??
코드 쓰기
string str1 = to_string(12345);
str1.at(index); // char 반환
str1.size();
내 풀이
#include <string>
#include <vector>
using namespace std;
bool solution(int x) {
bool answer = true;
string str1 = to_string(x);
vector<int> arr;
for(int i=0; i<str1.size(); i++){
int num = str1.at(i) - '0';
arr.push_back(num);
}
// sum 구하기
int sum=0;
for(int i: arr){
sum+=i;
}
// 나눠보기
if(x % sum == 0){
answer = true;
} else {
answer = false;
}
return answer;
}
풀고 나서 알게된 것
-