본문 바로가기
개발일지/코딩테스트

[Programmers] 가장 큰 수(c++)

by 쫌눈 2025. 3. 31.
728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/42746?language=cpp

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

주어진 수로 제일 큰 수를 만드는 값을 return하는 문제이다.

정렬을 어떻게 하는지에 따른 문제이다.

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

bool Sort(string left, string right) {
    int n = 0;
    string a = left+right;
    string b = right+left;
    return a > b;
}
string solution(vector<int> numbers) {
    string answer = "";
    vector<string> numberStr;
    numberStr.reserve(numbers.size());
    for (int i = 0; i < numbers.size(); i++)
    {
        numberStr.emplace_back(to_string(numbers[i]));
    }

    sort(numberStr.begin(), numberStr.end(), Sort);
    if (numberStr[0] == "0")
    {
        return "0";
    }
    for (int i = 0; i < numberStr.size(); i++)
    {
        answer.append(numberStr[i]);
    }
    return answer;
}

sort함수를 만들어 left+right값과 right+left값을 비교했다.

728x90
반응형