https://www.acmicpc.net/problem/10610
10610번: 30
어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한
www.acmicpc.net
30의 배수
1. 끝 자리가 0
2. 각 자리 수 합이 3의 배수
-> 두 조건에 충족하는 경우에 내림차순 정렬 후 출력
#include <bits/stdc++.h>
using namespace std;
bool compare(char a, char b){
return a>b;
}
int main(void){
ios::sync_with_stdio(0);
cin.tie(0);
string str;
cin>>str;
int sum=0;
int flag = 0;
for(int i=0; i<str.size(); i++){
sum += (str[i]-'0');
if(str[i]=='0')
flag = 1;
}
if(flag == 1 && sum %3 ==0){
sort(str.begin(), str.end(), compare);
cout<<str<<"\n";
}
else{
cout<<-1<<"\n";
}
}
'Algorithm > BOJ' 카테고리의 다른 글
[c++] 백준 2251 물통 (0) | 2021.01.26 |
---|---|
[c++] 백준 1744 수 묶기 (0) | 2021.01.25 |
[c++] 백준 2110 공유기 설치 (0) | 2021.01.22 |
[c++] 백준 2805 나무자르기 (0) | 2021.01.22 |
[c++] 백준 10451 순열 사이클 (0) | 2021.01.22 |