카테고리 없음

[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인 경우, 안바꾼다.