์ฝ๋ฉํ
์คํธ/์ฝ๋ฉํ
์คํธ ์ฐ์ต
[C++] ๊ฐ์ฅ ํฐ ์
Bradbury
2019. 9. 21. 20:45
728x90
๋ฌธ์ ์ค๋ช
0 ๋๋ ์์ ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ ์๋ฅผ ์ด์ด ๋ถ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ์์๋ด ์ฃผ์ธ์.
์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์ ์๊ฐ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋ง๋ค ์ ์๊ณ , ์ด์ค ๊ฐ์ฅ ํฐ ์๋ 6210์ ๋๋ค.
0 ๋๋ ์์ ์ ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด numbers๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์์๋ฅผ ์ฌ๋ฐฐ์นํ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- numbers์ ๊ธธ์ด๋ 1 ์ด์ 100,000 ์ดํ์ ๋๋ค.
- numbers์ ์์๋ 0 ์ด์ 1,000 ์ดํ์ ๋๋ค.
- ์ ๋ต์ด ๋๋ฌด ํด ์ ์์ผ๋ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด return ํฉ๋๋ค.
์ ์ถ๋ ฅ ์
numbers | return |
[6, 10, 2] | 6210 |
[3, 30, 34, 5, 9] | 9534330 |
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(string& a, string& b)
{
return a+b > b+a ? true : false;
}
string solution(vector<int> numbers) {
string answer = "";
vector<string> number_array;
for (int i = 0; i < numbers.size(); ++i)
number_array.push_back(to_string(numbers.at(i)));
/*for (int i : numbers)
number_array.push_back(to_string(numbers.at(i)));*/
sort(number_array.begin(), number_array.end(), cmp);
for (int i = 0; i < number_array.size(); ++i)
answer += number_array.at(i);
/*for (auto iter = number_array.begin; iter != number_array.end; ++iter)
answer += *iter;*/
if (answer.front() == '0')
answer = "0";
return answer;
}
int main()
{
vector<int> numbers = {3, 30, 34, 5, 9};
string ans;
ans = solution(numbers);
cout << ans << endl;
}
728x90