๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 10610๋ฒˆ - 30

by ์•ˆ์ฃผํ˜• 2021. 10. 16.
 

10610๋ฒˆ: 30

์–ด๋Š ๋‚ , ๋ฏธ๋ฅด์ฝ”๋Š” ์šฐ์—ฐํžˆ ๊ธธ๊ฑฐ๋ฆฌ์—์„œ ์–‘์ˆ˜ N์„ ๋ณด์•˜๋‹ค. ๋ฏธ๋ฅด์ฝ”๋Š” 30์ด๋ž€ ์ˆ˜๋ฅผ ์กด๊ฒฝํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ทธ๋Š” ๊ธธ๊ฑฐ๋ฆฌ์—์„œ ์ฐพ์€ ์ˆ˜์— ํฌํ•จ๋œ ์ˆซ์ž๋“ค์„ ์„ž์–ด 30์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์–ดํ•œ

www.acmicpc.net

//  Copyright © 2021 ์•ˆ์ฃผํ˜•. All rights reserved.
//  
//  https://www.acmicpc.net/problem/10610
//  BOJ10610 30

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>

using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    string N;
    cin >> N;

    long long sum = 0;
    bool check = true;
    for (int i = 0; i < N.length(); i++) {    //30์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋ ๋ ค๋ฉด , ๊ฐ ์ž๋ฆฌ์˜ ์ˆ˜์˜ ํ•ฉ์ด 3์˜ ๋ฐฐ์ˆ˜์ด๊ณ , ๋์ž๋ฆฌ๊ฐ€ 0 ์ด์–ด์•ผํ•œ๋‹ค
        sum += (N[i] - '0');
        if (!(N[i]-'0')) check = false;    //์ˆซ์ž์ค‘์— 0์ด ์—†์œผ๋ฉด false, 0์ด ์žˆ์œผ๋ฉด true
    }
    if (sum%3||check) cout << -1<< "\n";    //๊ฐ์ž๋ฆฌ ์ˆ˜์˜ ํ•ฉ์ด 3์˜๋ฐฐ์ˆ˜๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜ , ๋์ž๋ฆฌ๊ฐ€ 0์ด ์•„๋‹ˆ๋ฉด -1
    else {
        sort(N.begin(), N.end(), greater<char>());    //30์˜ ๋ฐฐ์ˆ˜๋ผ๋ฉด ๊ฐ€์žฅ ํฐ ์ˆ˜ ์ถœ๋ ฅ.
        cout << N<<"\n";
    }

} 

๋Œ“๊ธ€