[백준] 10610 30

0

백준

목록 보기
247/271
post-thumbnail

[백준] 10610 30

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

bool cmp(char a, char b) {
	return a > b;
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);

	string input;
	cin >> input;

	//input으로 만들 수 있는 가장 큰 수
	sort(input.begin(), input.end(), cmp);

	//30의 배수 = 3의 배수이면서 10의 배수
	//3의 배수 = 모든 자리수의 합이 3의 배수
	//10의 배수 = 수 끝자리 0

	int sum = 0; //자리수의 합 % 3 
	int len = input.length(); 
	for (int i = 0; i < len; ++i) {
		sum += (input[i] - '0');
		sum %= 3;
	}

	//3배수이면서 10의 배수
	if ((sum == 0) && (input[len - 1] == '0')) {
		cout << input;
	}
	else {
		cout << -1;
	}
	return 0;
}

profile
Be able to be vulnerable, in search of truth

0개의 댓글