백준/실버
[백준] 실버4-수학숙제 C++ 2870번
taene_
2025. 2. 23. 22:00
https://www.acmicpc.net/problem/2870
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int N;
string s, ret;
vector<string> v;
bool cmp(string a, string b)
{
if (a.size() == b.size())
return a < b;
return a.size() < b.size();
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> N;
for (int i = 0; i < N; i++)
{
cin >> s;
ret = "";
for (int j = 0; j < s.size(); j++)
{
if (s[j] >= '0' && s[j] <= '9')
{
ret += s[j];
}
else
{
if (ret.size())
{
int k = 0;
for (; ret[k] == '0'; k++);
if (k == ret.size())
k--;
v.push_back(ret.substr(k));
ret = "";
}
}
}
if (ret.size())
{
int k = 0;
for (; ret[k] == '0'; k++);
if (k == ret.size())
k--;
v.push_back(ret.substr(k));
ret = "";
}
}
sort(v.begin(), v.end(), cmp);
for (string i : v)
cout << i << '\n';
return 0;
}