Programmers 42746 가장 큰 수

로고 이미지

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42746

나의 풀이

  1. numbers의 숫자를 문자열로 만든다.
  2. 문자열들을 큰 숫자대로 정렬한다. (붙였을 때 큰 순서)
  3. 정렬된 문자열들을 순서대로 붙인다.

풀이 코드 : 42746 가장 큰 수

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

bool compare(string a, string b){
    return a+b>b+a;
}

string solution(vector<int> numbers) {
    string answer = "";
    vector<string> arr;
    for(int i=0;i<numbers.size();i++){
        arr.push_back(to_string(numbers[i]));
    }
    sort(arr.begin(), arr.end(),compare);
    if(arr[0] == "0"){
        answer = "0";
    }
    else{
        for(int i=0;i<arr.size();i++){
        answer += arr[i];
        }    
    }
    
    return answer;
}
int main(){
    cout<<solution({1,2,21, 21});
}

채점결과

42586


© 2020. All rights reserved.

Powered by Hydejack v8.4.0