[BOJ] 16496 큰 수 만들기

주어진 수들을 이어 만들 수 있는 가장 큰 수를 찾아봅시다

Table Of Contents

0. 들어가기

1. 문제 요약

음이 아닌 정수

(\leq 1,000,000,000)
N (1 \leq N \leq 1,000)
개 주어진다.

이 수들을 나열해서 만들 수 있는 가장 큰 수를 출력한다.

2. 풀이 정리

3. 구현

#include <iostream> #include <vector> #include <string> using namespace std; int N; vector<string> S; void bubbleSort() { for (int i = N - 1; i > 0; i--) { for (int j = 0; j < i; j++) { if (S[i] + S[j] > S[j] + S[i]) { string tmp = S[i]; S[i] = S[j]; S[j] = tmp; } } } } int main() { cin >> N; S.resize(N); for (int i = 0; i < N; i++) cin >> S[i]; bubbleSort(); if (S[0][0] == '0') { cout << 0; return 0; } for (int i = 0; i < N; i++) { cout << S[i]; } return 0; }

4. 여담