알고리즘 부셔버렷/ProblemSolving
[프로그래머스] 가장 큰 수 (문제 설명, 해결 과정, 코드 전문, c++)
Unagi_zoso
2022. 6. 9. 18:54
문제 설명 |
본 문제는 프로그래머스의 가장 큰 수 문제이다.
해결 과정 |
본 문제를 그냥 정수로 해결할 시 상당히 큰 범위의 수가 나올 수 있어 문자열로써 다루었습니다.
본 문제를 정렬하기 앞서 그냥 주어지는 정렬함수의 조건으로는 해당 문제를 풀 수 없어
사용자정의 조건을 만들었습니다.
그 조건은 비교하는 숫자문자들끼리 서로 덧붙혀 더 큰 숫자가 나오는 경우를 앞쪽에 정렬하는 것 입니다.
이렇게 정렬된 문자배열을 앞에서부터 덧붙혀 반환하면 정답입니다.
코드 전문 |
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(vector<int> numbers) {
string answer = "";
vector<string> str_nums;
int sum = 0;
for (auto n : numbers)
{
str_nums.emplace_back(to_string(n));
sum += n;
}
if (sum == 0) return "0";
sort(str_nums.begin(), str_nums.end(), [] (string s1, string s2) -> bool
{ return (s1 + s2) > (s2 + s1); });
for (auto num : str_nums)
answer += num;
return answer;
}
느낀 점 (잡설 99% , 배운점 1%(많은 편)) |
더보기
머리가 좀 더 말랑말랑해질 수 있게 노력하겠습니다.
긴 글 읽어주셔서 감사합니다.
부족한 점이 있다면 부디 알려주시면 감사하겠습니다.