728x90
반응형
문제 : 가장 큰 수
풀이 방법
처음에는 벡터를 하나 만들고 순열구하는 함수로 전부 넣은 다음 최대값을 비교하는 방법으로 풀었는데 테스트 케이스는 정답으로 나왔지만 제출할 때 시간초과라는 뭐같은 상황이 나와서 뭐 없나 생각하다가 그냥 숫자 앞뒤로 비교만 해도 되나 싶어서 해봤는데 정답으로 나와서 다행이었다 근데 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;
}
728x90
반응형
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Level 1, Java] 정수 제곱근 판별 (0) | 2022.08.04 |
---|---|
[프로그래머스 Level 2, C++] 최댓값과 최솟값 (0) | 2022.08.03 |
[프로그래머스 Level 1, C] 직사각형 별찍기 (0) | 2022.07.27 |
[프로그래머스 Level 2, C++] 124 나라의 숫자 (0) | 2022.07.27 |
[프로그래머스 Level 2, C++] 숫자의 표현 (0) | 2022.07.26 |