문제
https://school.programmers.co.kr/learn/courses/30/lessons/42746#
접근방법
lamda이용해서 정렬했다. 잘 안되서 chatGPT에게 물어봤다.
근데 string 끼리 A + B > B + A 이런 식으로 비교하면 된다고 알려줬다.
string끼리 비교할 수 있는 지 몰랐고,
A + B > B + A 아이디어가 좋았다.
처음 숫자가 0이 될 때 output이 0이 나와야하는데,
0000
이런 식으로 나와서 자꾸 실패가 떴다. 그래서 예외를 추가해줬다.
코드
#include <string>
#include <vector>
#include <algorithm>
#include <deque>
#include <iostream>
using namespace std;
string solution(vector<int> numbers) {
string answer = "";
sort(numbers.begin(), numbers.end(), [](int a, int b) {
string A = to_string(a);
string B = to_string(b);
return A + B > B + A;
});
if (numbers[0] == 0) return "0";
for (auto& t : numbers) {
answer += to_string(t);
}
return answer;
}
개선할 점
..
'코딩테스트 준비 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 프로세스(스택/큐) c++ (0) | 2024.02.15 |
---|---|
[프로그래머스] - H-index(정렬) c++ (0) | 2024.02.15 |
[프로그래머스] - k번째 수(정렬) c++ (1) | 2024.02.14 |
[프로그래머스] - 베스트앨범(해시) c++ (0) | 2024.02.14 |
[프로그래머스] - 의상(해시) c++ (0) | 2024.02.14 |