* 토큰화
for(s.len){
숫자면 ret누적
아니고 토큰잇으면 ->go
}if(남음)->go //뒤에 su00이런경우 처리
* go()
1.앞의 0지우기
2.모두지웟는데 빈칸 == 000이런경우 ret=0
3.v.push(ret)
4.ret초기화
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
int n, c, a[1004];
map<int, int> mp; //인덱스,모음(1)자음(2)
string s,num;
vector<string> v;
/*
* 단점:string 기본정렬은 사전순임 ex(43, 23333 )으로 정렬됨
* 해결:커스텀정렬(사이즈순,사이즈같으면 사전순)
*/
bool cmp(string a, string b)
{
if (a.size() == b.size()) return a < b;
return a.size() < b.size();
}
void go()
{
while (true)
{
if (num.size() && num.front() == '0') num.erase(num.begin());
else break;
}
if (num.size() == 0)num = "0";
v.push_back(num);
num = "";
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(NULL); cout.tie(NULL);
cin >> n;
while (n--)
{
cin >> s;
num = "";
for (int i = 0; i < s.length(); ++i)
{
if (s[i] >= 48 && s[i] <= 57)
{
num += s[i];
}
else if (num.size()) go();
}
if (num.size()) go();
}
sort(v.begin(), v.end(),cmp);
for (auto s : v) cout << s << "\n";
return 0;
}
'Algorithm > boj' 카테고리의 다른 글
백준 10709 //따닥따닥 입력받기 , 규칙발견, 구현 (1) | 2023.05.12 |
---|---|
백준 17071 //bfs, flood fill, 완탐x (2) | 2023.05.11 |
백준 4659 // 문자열==비교가능 (0) | 2023.05.04 |
백준 2910 빈도정렬 // 커스텀정렬, 인덱스에 의미부여 (0) | 2023.05.03 |
백준 7562 // 최단거리는 bfs, 핵심로직공부 (0) | 2023.05.02 |