끄적끄적 코딩
article thumbnail
Published 2019. 9. 25. 23:39
[C++] 백준 10610번 30 알고리즘

숫자들을 조합해서 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;

}

검색 태그