#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool comp(const string &x, const string &y);
string solution(vector<int> numbers) {
string answer = "";
vector<string> sNumber;
for(int i = 0; i < numbers.size(); i++)
{
sNumber.push_back(to_string(numbers[i]));
}
sort(sNumber.begin(), sNumber.end(), comp);
if(sNumber[0] == "0") return "0";
for(int i = 0; i < numbers.size(); i++)
{
answer += sNumber[i];
}
return answer;
}
bool comp(const string &x, const string &y)
{
return (x + y) > (y + x); //앞이 더 클경우 true 뒤에가 더 클경우 false
}
이것을 풀려할 때 더 쉽게 생각을 했어야했다.
9부터 두어야 한다는 생각에 1~9 10~99 ... 이런 순으로 하나씩 대입을 하려했으나 너무 시간이 오래걸릴 것 같았다.
그래서 sort로 조건을 두어 풀게되었다. 풀면서 sort의 활용도를 더 알게 되었다.
'Algorithm > Programmers' 카테고리의 다른 글
[C++] 프로그래머스 모의고사 완전탐색 (0) | 2021.04.21 |
---|---|
[C++] 프로그래머스 네트워크 DFS, BFS (0) | 2021.04.19 |
[C++] 프로그래머스 타겟넘버 DFS/BFS (0) | 2021.04.02 |
[C++] 프로그래머스 H-index (0) | 2021.01.04 |
[C++] 프로그래머스 K 번째 수 (0) | 2020.12.08 |