ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 10610번: 30
    정수론(Number theory) 2018. 7. 10. 08:13
    반응형

    https://www.acmicpc.net/problem/10610


    1. 문제

    어느날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다. 미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라. (그 수가 존재한다면)


    2. 알고리즘

    키워드 - 정수론

    접근 - 30 의 배수 임으로 십의 자리 수가 하나 있어야 하며, 숫 자들의 각각의 합은 3의 약수여야 한다.


    0은 하나 포함 되어 있어야 30의 배수를 찾을 수 있다. 

    2931의 숫자의 조합으로 만들 수 있는 순열을 구해 보면 30의 배수가 없다.



    3. 코드


    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    #include <iostream>
    #include <sstream>
    #include <string>
    #include <algorithm>
    #include <functional>
    #include <vector>
    #include <list>
    #include <queue>
    #include <deque>
    #include <map>
    #include <set>
    #include <stack>
    #include <cstring>
    using namespace std;
     
    #define MAX_SIZE 100
    #define INF 0x7fffffff
     
    /*
    * @memory  - 2268 kb
    * @time    - 0 ms
    */
    int main() {
     
        cin.tie(0);
        std::ios::sync_with_stdio(false);
     
        string s;
        cin >> s;
        int sum = 0;
        for (char c : s) {
            sum += c - '0';
        }
        
        sort(s.begin(), s.end());
        if (s[0== '0' && sum % == 0) {
            reverse(s.begin(), s.end());
            cout << s << '\n';
        }
        else {
            cout << "-1\n";
        }
        return 0;
    }
     
    cs

    반응형

    '정수론(Number theory)' 카테고리의 다른 글

    백준 1834번: 나머지와 몫이 같은 수  (0) 2018.07.15
    백준 2355번: 시그마  (0) 2018.07.15
    백준 10757번: 큰 수 A+B  (0) 2018.07.03
    백준 1850번: 최대공약수  (0) 2018.07.03
    백준 1065번: 한수  (0) 2018.07.03

    댓글

Designed by Tistory.