프로그래머스 가장큰수

최성현·2021년 2월 10일
0

문제 링크

코드 설명

sort함수에서 커스텀함수 compare함수를 이용하여 원하는 조건으로 정렬하는 문제였다.

각각의 원소들을 string으로 변환하여
3 + 30 = 330
30 + 3 = 303 두개를 비교하여 큰수가 앞에오도록 정렬하였다.

주의해야할점은 0이 가장 큰수가 되었을때는 0000과 같이 리턴되지않고 그냥 0 만 리턴되도록 해야한다.

소스코드

#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
bool compare(string i, string j) {
    return i + j > j + i;
}
string solution(vector<int> numbers) {
    string answer = "";
    vector<string> a;
    
    for (int i = 0; i < numbers.size(); i++) {
        a.push_back(to_string(numbers[i]));
    }
    
    
    sort(a.begin(), a.end(), compare);
    for (int i = 0; i < a.size(); i++) {
        answer += a[i];
    }
    if (a[0] == "0") return "0";
    return answer;
}

int main() {
    solution({ 0,0,0,0 });


    return 0;
}
profile
후회없이

0개의 댓글