본문 바로가기
이론/코딩테스트

[백준] 10610번 30 (문자열)

by 퇴근후개발 2022. 8. 4.
반응형

-문제

 

30 = 3 x 2 x 5

1) 2의 배수, 5의 배수를 충족하려면 끝자리는 0으로 끝나야한다.

2) 3의 배수를 충족하려면 각 자리수의 숫자의 합이 3의 배수여야 한다. 102 => 1 + 0 + 2 = 3 

3) 내림차순으로 가장 큰 수를 만들 수 있다. 

 

-코드

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

int main()
{
	string s;
	cin >> s;
	
	int sum = 0, cnt=0;
	for (int i = 0; i < s.size(); i++)
	{
		if (s[i] - '0' == 0) cnt++;
		sum += s[i]-'0';
	}

	if (cnt == 0 || sum % 3 !=0)
	{
		cout << -1;
		return 0;
	}

	sort(s.rbegin(), s.rend());

	for (int i = 0; i < s.size(); i++)
	{
		cout << s[i];
	}
	return 0;
}
반응형