본문 바로가기

Algorithm

C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 10610번:30 답

반응형

1.자릿수 중 0 을 포함(2 or 5의 배수)

2.모든 자릿수의 합이 3의 배수 

3.가장 큰 숫자 순으로 정렬하여 출력.

정수론에 따라 이 세가지 조건을 만족하면 30의 배수 중 가장 큰 놈입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int t;
bool z;
char num[100001];
bool cmp(const int &a, const int &b)
{
    return a > b;//내림차순으로 정렬 - > 가장 큰 수를 출력하기 위함
}
int main() {
    cin >> num;
    int snum = strlen(num);
    for (int i = 0; i < snum; i++)
    {
        if (num[i] == '0') { z = 1; }
        t += num[i] - '0';
    }
    if (t % == && z == 1) {
        sort(num, num + snum,cmp);
        for (int i = 0; i < snum; i++)
            cout << num[i];
    }
    else
        cout << "-1" << '\n';
}
cs