PS/Baekjoon
[C++] 백준 16496번: 큰 수 만들기
코딩고수이고파
2020. 11. 23. 00:03
1) 입력받을 때 0의 개수를 세고 리스트에 포함된 수와 개수가 같다면 0 출력
2) 0만 입력받은 게 아니라면 sort를 사용하여 앞 숫자가 a, 뒷 숫자가 b라 할 때 ab와 ba를 비교하여 정렬
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
string arr[1001];
bool cmp(string a, string b) {
if (a == b)
return false;
string ab = a + b;
string ba = b + a;
if (ab > ba)
return true;
else
return false;
}
int main() {
ios_base::sync_with_stdio;
int n;
int zero = 0;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> arr[i];
if (arr[i] == "0")
zero++;
}
if (zero == n)
cout << 0;
else {
sort(arr, arr + n, cmp);
for (int i = 0; i < n; i++)
cout << arr[i];
}
return 0;
}