풀이
숫자로 된 여러 문자열을 이어서 문자열을 만든다. 이때 문자열을 숫자로 볼때 제일 크게 만드는 문제이다.
문자열을 이을때 더 큰수가 될 수 있게 커스텀 비교함수를 만들어준다.
9 , 10이 있다면 910 과 109로 비교해준다.
67 678이 있다면 67678과 67867을 비교해준다.
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
vector<string> str_num;
bool compare(string a, string b){
return a+b>b+a;
}
string solution(vector<int> numbers) {
string answer = "";
for(auto n : numbers){
str_num.push_back(to_string(n));
}
sort(str_num.begin(),str_num.end(),compare);
if(str_num[0]=="0")
return "0";
for(int i= 0;i<str_num.size();i++){
answer+=str_num[i];
}
return answer;
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 모의고사 c++ (0) | 2024.01.19 |
---|---|
[프로그래머스] H-Index c++ (0) | 2024.01.17 |
[프로그래머스] k번째수 c++ (0) | 2024.01.16 |
[프로그래머스] 이중우선순위 c++ (0) | 2024.01.16 |
[프로그래머스] 디스크 컨트롤러 c++ (0) | 2024.01.14 |