게으른카르

백준 2870 수학숙제 C++

C
2023. 4. 14. 23:06

백준 2870 수학숙제.

백준 2870번 "수학숙제" 문제의 자세한 내용은 글 하단의 문제 링크를 참고하세요.

2870번 문제에 주어지는 입력 및 예시

입력: 

2
lo3za4
01

출력:

1
3
4

문자열은 최대 100글자.

이게 전부 숫자로 나온다고 가정하면, int나 long long으로 처리하지 못함.

문제 대충 읽고 stoi로 처리했다가 한번 틀렸음.

코드

백준 2870번 "수학숙제" 문제의 코드입니다.

#include <bits/stdc++.h>
using namespace std;
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(NULL);cout.tie(NULL);
    int n;
    string a, tmp;
    vector<string> num;
    cin>>n;
    while(n--){
    	string tmp="";
    	cin>>a;
    	for(int i=0;i<a.size();i++){
    		if(a[i]>='0'&&a[i]<='9')
    			tmp+=a[i];	
			else if(!tmp.empty()){
				while(tmp.size() > 1 &&tmp[0]=='0')
					tmp.erase(0,1);
				num.push_back(tmp);
				tmp="";
			}
		}
		if(!tmp.empty()){
			while(tmp.size() > 1 &&tmp[0]=='0')
				tmp.erase(0,1);	
			num.push_back(tmp);
			tmp="";
		}
	}
	sort(num.begin(),num.end(),cmp);
	for(auto v:num) cout<< v <<"\n";
    return 0;
}

실행

위의 코드를 예제의 입력을 넣어 실행했을 때의 결과입니다.\

반응형

'C' 카테고리의 다른 글

백준 15829 Hashing C++  (0) 2023.04.16
백준 2852 NBA 농구 C++  (0) 2023.04.16
백준 10709 기상캐스터 C++  (0) 2023.04.14
백준 3474 교수가 된 현우 C++  (0) 2023.04.14
백준 20414 MVP 다이아몬드 (Normal) C++  (0) 2023.04.14

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band