알고리즘 문제/AlgoSpot
가장 큰 수
parkit
2019. 4. 19. 19:59
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/42746#
처음에 백트래킹인줄 알았다.
그런데 vector 요소의 개수가 100,000개임을 보고 이건 아니다 라고 생각하였다.
방법을 몰라서 다른 분들의 코드를 보았는데,
모두들 cmp 함수를 잘 활용하셨다.
왜 백트래킹으로만 생각했는지 모르겠다.
가장 큰 수이므로, 내림차순 정렬을 조금이라도 생각했었으면
접근은 했었을텐데 아쉬웠다.
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 | #include <string> #include <vector> #include <algorithm> using namespace std; bool cmp(const string & a, const string & b) { return a + b > b + a ? true : false; } 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); for(auto i : v) answer += i; if(answer.at(0) == '0') return "0"; return answer; } | cs |
728x90
반응형