Link https://www.acmicpc.net/problem/1431
소스결과 1996 KB / 0 ms
출처 Baekjoon
언어 C++ 17
분류 정렬
소스코드
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(string& str1, string& str2) {
int len1 = str1.length();
int len2 = str2.length();
if (len1 != len2)
return len1 < len2;
int str1Sum = 0;
int str2Sum = 0;
for (int i = 0; i < len1; i++) {
if ('0' <= str1[i] && str1[i] <= '9')
str1Sum += str1[i] - '0';
if ('0' <= str2[i] && str2[i] <= '9')
str2Sum += str2[i] - '0';
}
if (str1Sum != str2Sum)
return str1Sum < str2Sum;
return str1 < str2;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
int n; cin >> n;
vector<string> inputs(n);
for (int i = 0; i < n; i++)
cin >> inputs[i];
sort(inputs.begin(), inputs.end(), cmp);
for (int i = 0; i < n; i++)
cout << inputs[i] << '\n';
return 0;
}
'Algorithm > Sorting' 카테고리의 다른 글
Baekjoon 10814 나이순 정렬 (0) | 2019.08.23 |
---|---|
Baekjoon 10825 국영수 (0) | 2019.08.23 |
Baekjoon 1181 단어 정렬 (0) | 2019.08.22 |
BaekJoon 10989 수 정렬하기 3 (0) | 2019.01.12 |
BaekJoon 1026 보물 (0) | 2019.01.12 |