카테고리 없음
[C++] 프로그래머스 가장 큰 수
지휘리릭
2020. 2. 25. 18:18
#include <vector>
#include <algorithm>
using namespace std;
// a b 값을 바꿔야 하는지 확인
bool whoIsBigger(string &a, string &b){
return ( a+b < b+a ? true : false );
}
string solution(vector<int> numbers) {
string answer = "";
vector <string> v;
int i;
for(i=0;i<numbers.size(); i++){
v.push_back(to_string(numbers[i]));
}
// 비교함수 이용
sort(v.begin(), v.end(), whoIsBigger);
while(!v.empty()){
answer += v.back();
v.pop_back();
}
if (answer[0] == '0') answer = "0";
return answer;
}
새로 배운 것
정렬 함수 sort를 사용하는 데에 일반적인 오름차순, 내림차순을 사용하는 것 말고도 원하는 비교함수를 지정할 수 있다. true라면, 두 값을 바꾸고 false인 경우, 안바꾼다.