알고리즘
[C++] 백준 10610번 30
J3SUNG
2019. 9. 25. 23:39
728x90
숫자들을 조합해서 30으로 나누어 떨어지는 가장 큰 수를 출력하는 문제입니다.
숫자들의 합이 3으로 나누어 떨어지면서 0이 존재하는지 확인하면 됩니다.
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(int argc, char *argv[])
{
string N;
cin >> N;
long long sum = 0;
bool zero = false;
for (int i = 0; i < N.size(); i++) {
sum += (N[i] - '0');
if (!(N[i] - '0')) {
zero = true;
}
}
sort(N.begin(), N.end(), greater<int>());
(sum % 3 || !zero) ? cout << -1 << "\n" : cout << N << "\n";
return 0;
}