728x90
반응형
목차
https://www.acmicpc.net/problem/2870
문제
문제 구현방향
문자열이 100글자까지 되어 모든 수가 숫자이면 int형 범위를 초과하게 된다
따라서 문자열을 따로 저장해 문자열 정렬 기준을 직접 만들어 풀어 주어야 한다.
참고
https://be-senior-developer.tistory.com/9
코드 구현
#include <iostream>
#include<vector>
#include<map>
#include<queue>
#include<algorithm>
#include<string>
using namespace std;
vector<string> v;
bool compare(string a, string b) { //문자열 정렬 기준
if (a.size() == b.size())
return a < b;
else
return a.size() < b.size();
}
string zero(string str) {
string num = "";
int flag = 0; //0저장해도 되는지 flag
for (int i = 0; i < str.size(); i++) {
if (str[i] != '0') {
num += str[i];
flag = 1;
}
else if (flag && str[i] == '0')
num += '0';
}
if (num == "") //모든 수가 0이므로 0 반환
return "0";
else
return num;
}
int main() {
int T;
string str, num="";
cin >> T;
for (int i = 0; i < T; i++) {
cin >> str;
num = "";
for (int j = 0; j < str.size(); j++) {
if (str[j] >= '0' && str[j] <= '9') //일단 모든 숫자를 다 저장해 준다
num += str[j];
else {
if(num!="")
v.push_back(zero(num));
num = "";
}
}
if(num!="") //남은 문자열도 확인해 준다
v.push_back(zero(num));
}
sort(v.begin(), v.end(), compare); //새로운 정렬 기준을 바탕으로 정렬
for (auto k : v)
cout << k<<"\n";
}
반응형
'백준 문제풀이' 카테고리의 다른 글
[백준][bfs] 2589 보물섬 c++ 구현 (0) | 2024.05.10 |
---|---|
[백준][완전 탐색] 15686 치킨 배달 c++구현 (3) | 2024.05.09 |
[백준][문자열] 9375 패션왕 신해빈 c++구현 (0) | 2024.05.05 |
[백준][문자열] 1213 팰린드롬 만들기 c++ 구현 (0) | 2024.05.04 |
[백준][dfs] 1068 트리 c++ 구현 (0) | 2024.05.04 |