실버3 : 정렬 문제이다. 생각 문제에서 하라는 대로 비교만 하면 된다. Code // 실버3 : 백준 1431번 시리얼 번호 #include <iostream> #include <string> #include <algorithm> using namespace std; int N = 0; string arr[1002]; bool compare(string a, string b){ int sizeA = int(a.size()), sizeB = int(b.size()); if (sizeA > sizeB) return false; else if (sizeA < sizeB) return true; else { int sumA = 0, sumB = 0; for (int i = 0; i < sizeA; i++) { if (0 <= a[i]-'0' && a[i]-'0' <= 9) sumA += a[i]-'0'; } for (int i = 0; i < sizeA; i++) { if (0 <= b[i]-'0' && b[i]-'0' <= 9) sumB += b[i]-'0'; } if (sumA < sumB) return true; else if (sumA > sumB) return false; else { return a < b; } } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> N; for (int i = 0; i < N; i++) { cin >> arr[i]; } sort(&arr[0], &arr[N], compare); for (int i = 0; i < N; i++) { cout << arr[i] << '\n'; } return 0; } Reference 백준(1431번) - 시리얼 넘버