코딩 공부 - 프로그래머스 - 가장 큰 수
문제
설명
- 주어진 0과 양의정수 배열에서 만들 수 있는 가장 큰수를 구하는 문제
코드
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>
using namespace std;
string solution(vector<int> numbers) {
string answer = "";
stringstream sss;
sort(numbers.begin(), numbers.end(), [](const int& first, const int& second){
string f = to_string(first);
string s = to_string(second);
if (stoll(f+s) > stoll(s+f)) {
return true;
}
return false;
});
for (int i = 0; i < numbers.size(); i++) {
sss << numbers[i];
}
answer = sss.str();
int count = 0;
for (int i = 0; i < answer.size(); i++) {
if (answer[i] == '0') {
count++;
} else {
break;
}
}
// 모든 수가 0일때
if (count == answer.size()) {
answer = "0";
} else {
// 0010 등과 같이 숫자 앞에 0이 왔을 때 0 제거
answer = answer.substr(count,answer.size());
}
return answer;
}
공유하기
Twitter Facebook LinkedIn댓글을 남기시려면 Github 로그인을 해주세요