Dolphins의 HelloWorld

[백준]Baekjoon10610(Greedy Algorithm) 본문

Algorithm/baekjoon문제풀이

[백준]Baekjoon10610(Greedy Algorithm)

돌핀's 2018. 8. 28. 23:05


문제 링크 : https://www.acmicpc.net/problem/10610


30 = 3 * 10 이며 10의 배수는 0이 필요하고 3의 배수는 각 자리 숫자의 합이


3의 배수라는 성질이 있으므로 이 성질들을 이용하여 코드를 짜 보았다.


#include <iostream>
#include <string>
#include <cstring>

using namespace std;
int arr[10];

int main()
{
	string N;
	cin >> N;
	int sum = 0;

	memset(arr, 0, sizeof(int) * 10);
	for (int i = 0; i < N.size(); i++) {
		int num = N[i] - '0';
		sum += num;
		arr[num]++;
	}
	string result = "";

	if ((sum % 3 != 0) || (arr[0] == 0)) result = "-1";
	else {
		result.empty();
		for (int i = 9; i >= 0; i--) {
			char c = i + '0';
			while (arr[i]--) {
				result.push_back(c);
			}
		}
	}
	cout << result;
}


Comments