프로그래머스 가장 큰 수 C++
2023. 9. 21. 14:32ㆍ알고리즘
문제
풀이
bool cmp(string a, string b){
return a+b > b+a;
}
이 함수는 비교함수이다. 두개의 문자여릉ㄹ 인자로 받아 두 문자열을 연결한 결과물을 비교해 참 또는 거짓을 리턴한다. a와 b를 이어붙인 문자열을 비교해 더 크면 참을 반환한다.
이 함수를 토대로 코드를 짰다.
문자열을 받은 다음에 정열을 한다. 이 때, 6과 10이 주어졌을 때 610이 큰지 106이 큰지를 리턴해준다. 이런방식으로하면 단순히 정렬 알고리즘만을 써서도 문제에 대한 답을 얻을 수 있다.
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
bool cmp(string a, string b){
return a+b > b+a;
}
string solution(vector<int> numbers) {
string answer = "";
vector<string> v;
for (auto i:numbers){
v.push_back(to_string(i));
}
sort(v.begin(), v.end(), cmp);
if (v[0]=="0"){
return "0";
}
for (auto i : v){
answer+=i;
}
return answer;
}
'알고리즘' 카테고리의 다른 글
백준 11005 진법 변환 2 C++ (0) | 2023.09.29 |
---|---|
백준 1913 C++ (0) | 2023.09.29 |
프로그래머스 연속 부분 수열 합의 개수 C++ (0) | 2023.09.18 |
프로그래머스 모음사전 C++ dfs (0) | 2023.09.17 |
프로그래머스 리코쳇 로봇 C++ (0) | 2023.09.17 |