https://www.acmicpc.net/problem/10610
๋ฌธ์
์ด๋ ๋ , ๋ฏธ๋ฅด์ฝ๋ ์ฐ์ฐํ ๊ธธ๊ฑฐ๋ฆฌ์์ ์์ N์ ๋ณด์๋ค. ๋ฏธ๋ฅด์ฝ๋ 30์ด๋ ์๋ฅผ ์กด๊ฒฝํ๊ธฐ ๋๋ฌธ์, ๊ทธ๋ ๊ธธ๊ฑฐ๋ฆฌ์์ ์ฐพ์ ์์ ํฌํจ๋ ์ซ์๋ค์ ์์ด 30์ ๋ฐฐ์๊ฐ ๋๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ง๋ค๊ณ ์ถ์ดํ๋ค.
๋ฏธ๋ฅด์ฝ๋ฅผ ๋์ ๊ทธ๊ฐ ๋ง๋ค๊ณ ์ถ์ดํ๋ ์๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ.
์ ๋ ฅ
N์ ์ ๋ ฅ๋ฐ๋๋ค. N๋ ์ต๋ 105๊ฐ์ ์ซ์๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, 0์ผ๋ก ์์ํ์ง ์๋๋ค.
์ถ๋ ฅ
๋ฏธ๋ฅด์ฝ๊ฐ ๋ง๋ค๊ณ ์ถ์ดํ๋ ์๊ฐ ์กด์ฌํ๋ค๋ฉด ๊ทธ ์๋ฅผ ์ถ๋ ฅํ๋ผ. ๊ทธ ์๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ฉด, -1์ ์ถ๋ ฅํ๋ผ.
ํ์ด
1. 30์ ๋ฐฐ์๊ฐ ๋๋ ์กฐ๊ฑด์ ์ ์๊ฐํด์ผํ๋ค.
1-1) 3์ ๋ฐฐ์ = ๊ฐ ์๋ฆฌ์์ ํฉ์ด 3์ ๋ฐฐ์ -> ๊ฐ ์๋ฆฌ์์ ํฉ % 3 == 0 ์ด๋ฉด ๋๋ค
1-2) 10์ ๋ฐฐ์ = ๋ง์ง๋ง์ด 0์ผ๋ก ๋๋จ -> ์ฃผ์ด์ง ์ซ์๋ค์ค 0์ด ์กด์ฌํ๊ธฐ๋ง ํ๋ฉด ๋๋ค
2. ์กฐ๊ฑด 1์ ๋ง์กฑํ๋ ๊ฒ๋ค ์ค ๊ฐ์ฅ ํฐ ์
=> ์กฐ๊ฑด 1์ ๋ง์กฑํ๋ ์๋ผ๋ ๊ฒ์ด ๋ฐํ์ง๋ฉด ํฐ ์์๋๋ก ์ ๋ ฌ
(0์ ์ด์ฐจํผ ๋งจ ๋์ ๊ฐ๊ฒ ๋จ)
๋ง์ฝ 4%์์ ํ๋ ธ์ต๋๋ค ๊ฐ ๋ฌ๋ค๋ฉด
์ ๋ ฅ๊ฐ์ ๋ฒ์๋ฅผ ์ ๋ณด์... ์ต๋๊ฐ 100000๊ฐ ์๋๋ผ ์๋ฆฟ์๊ฐ 100000์ด๋ค....
int๋ ๋ฌผ๋ก ์ด๊ณ long long ์ผ๋ก๋ ํฑ์์ด ๋ถ์กฑํ๋ค
์ ์ด์ string์ผ๋ก ์ ๋ ฅ์ ๋ฐ๊ณ ์ฒ๋ฆฌํด์ค์ผํ๋ค.
// Authored by : seondal
// Co-authored by : -
// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool isMultiple(string &s){
int sum=0;
for(int i=0; i<s.size(); i++)
sum += s[i]-'0';
// ๋ง์ฝ ๊ฐ ์๋ฆฌ์ ํฉ์ด 3์ ๋ฐฐ์์ด๊ณ , ๊ฐ์ฅ ์์ ์ซ์๊ฐ 0์ด๋ฉด(=0์ด ํฌํจ๋์ด์๋ค๋ฉด)
if(sum%3==0 && s[0]=='0')
return true;
return false;
}
string solution(string s){
sort(s.begin(), s.end());
if(isMultiple(s)) {
reverse(s.begin(), s.end());
return s;
}
return "-1";
}
int main() {
ios_base :: sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
string s;
cin >> s;
cout << solution(s);
return 0;
}
/*
*/
'๐๏ธ ICPC Sinchon > Greedy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ S4][C++] ๋ฐฑ์ค 11399๋ฒ: ATM (0) | 2022.10.11 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฝ๋ฉํ ์คํธ ์ฐ์ต ํ์๋ฒ(Greedy): ์ฒด์ก๋ณต (0) | 2022.10.11 |
[BOJ][C++] ๋ฐฑ์ค 1931๋ฒ: ํ์์ค ๋ฐฐ์ (0) | 2022.10.08 |
[BOJ] ๋ฐฑ์ค 11047๋ฒ: ๋์ 0 (0) | 2022.10.08 |
[๋ฐฑ์ค][C++/C์ธ์ด] 5585๋ฒ : ๊ฑฐ์ค๋ฆ๋ (0) | 2021.02.08 |