경험의 기록

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

 

코딩테스트 연습 - 가장 큰 수

0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰

programmers.co.kr

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <string>
#include <vector>
#include <algorithm>
 
using namespace std;
 
bool sortt(string a, string b) {
    return a + b > b + a; // 정렬기준을 따로 정해줌
}
 
string solution(vector<int> numbers) {
    string answer = "";
 
    vector <string> tmp;
    for (int i = 0; i < numbers.size(); i++) {
        tmp.push_back(to_string(numbers[i]));
    }
 
    sort(tmp.begin(), tmp.end(),sortt);
 
    if (tmp[0== "0")
        return "0"// 0일때 예외처리
 
    for (int i = 0; i < tmp.size(); i++) {
        answer += tmp[i];
    }
    return answer;
}
 
 
cs
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading