Greedy Algorithm
๋ฌธ์
์ด๋ ๋ , ๋ฏธ๋ฅด์ฝ๋ ์ฐ์ฐํ ๊ธธ๊ฑฐ๋ฆฌ์์ ์์ N์ ๋ณด์๋ค. ๋ฏธ๋ฅด์ฝ๋ 30์ด๋ ์๋ฅผ ์กด๊ฒฝํ๊ธฐ ๋๋ฌธ์, ๊ทธ๋ ๊ธธ๊ฑฐ๋ฆฌ์์ ์ฐพ์ ์์ ํฌํจ๋ ์ซ์๋ค์ ์์ด 30์ ๋ฐฐ์๊ฐ ๋๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ง๋ค๊ณ ์ถ์ดํ๋ค.
๋ฏธ๋ฅด์ฝ๋ฅผ ๋์ ๊ทธ๊ฐ ๋ง๋ค๊ณ ์ถ์ดํ๋ ์๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ.
ํ์ด
30์ ๋ฐฐ์๊ฐ ๋๊ธฐ ์ํ ์กฐ๊ฑด
- 0์ด ์กด์ฌํด์ผํจ
- ๊ฐ ์๋ฆฌ์ ์ซ์ ํฉ์ด 3์ ๋ฐฐ์์ฌ์ผํจ
- long long์ผ๋ก๋ ํํ ๋ชปํ๋ฏ๋ก string์ผ๋ก ํ์ด์ผํจ!
- string์์ find๋ฅผ ์ธ ๋ ์กด์ฌํ์ง์์ผ๋ฉด -1์ ๋ฐํ
-
string์ int๋ก ๋ณํํ ๋ **stoi**, char์ int๋ก ๋ณํํ ๋ **-'0'**
์ฝ๋
์ฌ์ฉ์ธ์ด: C++
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <string>
using namespace std;
string solution(string s)
{
int sum = 0;
if (s.find("0") == -1)
return "-1";
else
{
for (int i = 0; i < s.length(); i++)
{
sum += s[i] - '0';
}
if (sum % 3 == 0)
{
sort(s.begin(), s.end(), greater<int>());
return s;
}
else
return "-1";
}
}
int main()
{
string input;
cin >> input;
cout << solution(input) << endl;
return 0;
}