반응형
    
    
    
  -문제

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;
}반응형
    
    
    
  '이론 > 코딩테스트' 카테고리의 다른 글
| [백준] 1946번 신입사원 (그리디 알고리즘) (0) | 2022.08.04 | 
|---|---|
| [백준] 2217번 로프 (그리디 알고리즘) (0) | 2022.08.04 | 
| [백준] 1026번 보물 (그리디 알고리즘) (0) | 2022.08.03 | 
| [백준] 2941번 크로아티아 알파벳 (문자열) (0) | 2022.08.03 | 
| [백준] 1764번 듣보잡 (맵) (0) | 2022.08.03 | 
 
                    
                   
                    
                   
                    
                  