본문 바로가기
알고리즘/프로그래머스

[프로그래머스] 가장 큰 수 c++

by 오오오니 2024. 1. 16.

풀이

숫자로 된 여러 문자열을 이어서 문자열을 만든다. 이때 문자열을 숫자로 볼때 제일 크게 만드는 문제이다.

문자열을 이을때 더 큰수가 될 수 있게 커스텀 비교함수를 만들어준다.

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;
}