본문 바로가기
  • Let's study
PS/백준

[C++] 백준 16496번: 큰 수 만들기

by 코딩고수이고파 2020. 11. 23.

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;
}

댓글