본문 바로가기
Algorithm/BOJ

[백준/BOJ] 1431번 - 시리얼 번호 (C++)

by shine-jung 2022. 3. 21.
반응형

문제 링크


코드

#include <bits/stdc++.h>
using namespace std;

bool comp(string a, string b) {
    if (a.length() != b.length())
        return a.length() < b.length();
    int s_a = 0, s_b = 0;
    for (auto c : a)
        if (c >= '0' && c <= '9') s_a += (c - '0');
    for (auto c : b)
        if (c >= '0' && c <= '9') s_b += (c - '0');
    if (s_a != s_b)
        return s_a < s_b;
    return a < b;
}

int main(void) {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n, i;
    cin >> n;
    vector<string> v(n);
    for (i = 0; i < n; i++)
        cin >> v[i];
    sort(v.begin(), v.end(), comp);
    for (i = 0; i < n; i++)
        cout << v[i] << '\n';
}



설명


comp 함수를 곁들여 sort 함수를 사용하는 방법이다.

이제 정렬 문제는 자신 있다!

라고 애송이가 말했다.




(주의) 기록용으로 작성한 글입니다. 좋은 코드가 아닐 수 있습니다.

댓글 환영합니다!


반응형

댓글