문제
https://www.acmicpc.net/problem/2870
2870번: 수학숙제
종이에서 찾은 숫자의 개수를 M이라고 하면, 출력은 M줄로 이루어져야 한다. 각 줄에는 종이에서 찾은 숫자를 하나씩 출력해야 한다. 이때, 비내림차순으로 출력해야 한다. 비내림차순은 내림차
www.acmicpc.net
해설
동적할당 -> vector사용
커스텀 정렬
string 크기 비교(길이가 다르면 정렬 제대로 X)
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#include <bits/stdc++.h>
using namespace std;
int n;
string line;
string tmp;
bool check;
vector<string> ret;
bool cmp(string a, string b)
{
if (a.size() == b.size())
return b > a;
return a.size() < b.size()
}
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> line;
check = false;
for (char a : line)
{
tmp = a;
if (a >= '0' && a <= '9' && check == false)
{
ret.push_back(tmp);
check = true;
}
else if (a >= '0' && a <= '9' && check == true)
{
tmp = ret.back();
if (tmp == "0")
tmp = a;
else
tmp += a;
ret.back() = tmp;
}
else
check = false;
}
}
sort(ret.begin(), ret.end(), cmp);
for (auto a : ret)
{
cout << a << "\n";
}
}
|
cs |
'백준 알고리즘(C++)' 카테고리의 다른 글
백준 3474번 교수가 된 현우 ( C++ ) (0) | 2024.03.20 |
---|---|
백준 10709번 기상캐스터 (0) | 2024.03.19 |
백준 4659번 비밀번호 발음하기 ( C++ ) (0) | 2024.03.18 |
백준 2910번 빈도 정렬 ( C++) (0) | 2024.03.18 |
백준 2828번 사과 담기 게임 (C++) (0) | 2024.03.17 |