프로그래머스 42746 - 가장 큰 수
생각과 접근
- 이어 붙여서 가장 큰 수를 만드는 문제다.
- 어떤 기준으로 string을 sort해야 이어 붙여서 가장 큰 수를 만들 수 있을까?
- 실제로 이어 붙여서 비교해보면 된다.
bool compare(string a, string b){ return a + b > b + a; }
- 처음 보는 compare 함수 형태라 당황했지만, 꼭 기억해야 하는 compare함수라고 생각된다.
- 실제로 이어 붙여서 비교해보면 된다.
코드
#include <bits/stdc++.h>
using namespace std;
bool compare(string a, string b){
return a + b > b + a;
}
string solution(vector<int> numbers) {
string answer = "";
vector<string> v;
for(int i = 0 ; i < numbers.size(); i++){
v.push_back(to_string(numbers[i]));
}
sort(v.begin(), v.end(), compare);
for(int i = 0; i < v.size(); i++){
if(answer.empty() && v[i] == "0"){
answer = "0";
break;
}
answer.append(v[i]);
}
return answer;
}
채점 결과
'Coding Test > programmers' 카테고리의 다른 글
프로그래머스 43165 - 타겟 넘버 (c++) (0) | 2020.07.29 |
---|---|
프로그래머스 42747 - H-Index (c++) (0) | 2020.07.29 |
프로그래머스 42748 - K번째수 (c++) (0) | 2020.07.29 |
프로그래머스 42587 - 프린터 (c++) (0) | 2020.07.28 |
프로그래머스 42583 - 다리를 지나는 트럭 (c++) (0) | 2020.07.28 |