[백준]10610_30

🐈 JAELEE 🐈·2021년 10월 12일
0

https://www.acmicpc.net/problem/11653

Solved

✔ 알고리즘 분류: 정수론
✔ 이 문제는 30의 배수들의 두 가지 특징을 알아야 한다.
✔ 30(3x10)의 배수인 수들의 특징
(1) 0이 최소 한 번 이상 나와야 한다.
(2) 모든 자릿수들의 합이 3의 배수이다.

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

bool compare(int a, int b) {
	return a > b;
}
int main() {
	int num[10] = {}, sum=0;
	string s;
	cin >> s;
	for (int i = 0; i < s.size(); i++) {
		num[s[i] - '0']++;
		sum += s[i] - '0';
	}

	if (sum % 3 == 0 && num[0] != 0) {
		for (int i = 9; i >= 0; i--) {
			if (num[i] != 0) {
				for (int j = 0; j < num[i]; j++)
					cout << i;
			}
		}
	}
	else {
		cout << -1;
	}

	return 0;
}

0개의 댓글

Powered by GraphCDN, the GraphQL CDN