#include<iostream>
#include<algorithm>
using namespace std;
string arr[1000];
int n;
int getSum(string s) {
int sum = 0;
for(int i = 0; i < s.length(); i++) {
if(0 <= s[i] - '0' && s[i] - '0' <= 9) // 숫자인 경우만 더하기
sum += s[i] - '0';
}
return sum;
}
bool compare(string a, string b) {
if(a.length() < b.length())
return 1;
else if(a.length() > b.length())
return 0;
else {
int aSum = getSum(a);
int bSum = getSum(b);
if(aSum != bSum)
return aSum < bSum;
else
return a < b;
}
}
int main(void){
cin >> n;
for(int i = 0; i < n; i++)
cin >> arr[i];
sort(arr, arr+n, compare);
for(int i = 0; i < n; i++)
cout << arr[i] << '\n';
}
Algorithm백준+프로그래머스+SWEA+정올+구름카테고리의 다른글
두 정수 사이의 합 (0) | 2021.04.16 |
---|---|
[Algorithm] 백준 10989 수 정렬하기 (0) | 2021.04.04 |
[Algorithm] 백준 1181 단어 정렬 (0) | 2021.04.04 |
[Algorithm] 백준 2751 수 정렬하기 2 (0) | 2021.04.02 |
[Algorithm] 백준 2752 세 수 정렬 (0) | 2021.04.02 |