문제 : 가장 큰 수

풀이 방법
처음에는 벡터를 하나 만들고 순열구하는 함수로 전부 넣은 다음 최대값을 비교하는 방법으로 풀었는데 테스트 케이스는 정답으로 나왔지만 제출할 때 시간초과라는 뭐같은 상황이 나와서 뭐 없나 생각하다가 그냥 숫자 앞뒤로 비교만 해도 되나 싶어서 해봤는데 정답으로 나와서 다행이었다 근데 11번 테스트 케이스에서 막혀서 질문하기를 봤는데 0일경우 0하나만 나와야한대서 그렇게 해주니 정답이었다 이번에 람다식 공부도 하고 재밌었다
소스 코드
#include <string>
#include <vector>
#include <numeric>
#include <algorithm>
using namespace std;
string solution(vector<int> numbers) {
vector<string> arr(numbers.size());
// numbers벡터에서 arr벡터로 타입 변경하여 대입
transform(numbers.begin(), numbers.end(), arr.begin(), [](int i) { return to_string(i); });
sort(arr.begin(), arr.end(), [](string a, string b) { return a+b > b+a; });
// 벡터에서 string으로 바로
string answer = accumulate(arr.begin(), arr.end(), string{});
return answer[0] == '0' ? "0" : answer;
}
'정리 전 게시글 > 공부 관련' 카테고리의 다른 글
| [프로그래머스 Level 2, C++] 최댓값과 최솟값 (0) | 2022.08.03 |
|---|---|
| [안드로이드, Java] View 동적으로 addView() 하고 마진 적용 하는 방법 (0) | 2022.08.02 |
| startActivity(intent); 팅김 오류 해결법 (0) | 2022.07.28 |
| [프로그래머스 Level 1, C] 직사각형 별찍기 (0) | 2022.07.27 |
| [프로그래머스 Level 2, C++] 124 나라의 숫자 (0) | 2022.07.27 |