728x90
반응형
문제: https://www.acmicpc.net/problem/2890
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int R, C;
string Str;
vector<vector<int>> Team;
int Cmp1(const vector<int>& a, const vector<int>& b) { return a[1] > b[1]; }
int Cmp2(const vector<int>& a, const vector<int>& b) { return a[0] < b[0]; }
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> R >> C;
for (int i = 1; i <= R; ++i)
{
bool IsValid = false;
char Line;
int Count = 0;
cin >> Str;
for (const auto& i : Str)
{
if (i == '.') Count++;
if (i > 48 && i < 58)
{
Line = i - '0';
IsValid = true;
break;
}
}
if (IsValid) Team.push_back({ Line, Count, 0 });
}
sort(Team.begin(), Team.end(), Cmp1);
int Rank = 1, Count = 0;
for (auto& i : Team)
{
if (i[1] >= Count)
{
i[2] = Rank;
Count = i[1];
}
else
{
Count = i[1];
i[2] = ++Rank;
}
}
sort(Team.begin(), Team.end(), Cmp2);
for (const auto& i : Team)
cout << i[2] << "\n";
}
728x90
반응형
'📕알고리즘 문제 > 📝Baekjoon' 카테고리의 다른 글
[백준] 골드5 : (18428) 감시 피하기 (0) | 2024.11.13 |
---|---|
[백준] 골드2 : (1781) 컵라면 (0) | 2024.11.12 |
[백준] 실버4 : (2217) 로프 (0) | 2024.11.08 |
[백준] 골드5 : (2170) 선 긋기 (0) | 2024.11.07 |
[백준] 실버3 : (11478) 서로 다른 부분 문자열의 개수 (0) | 2024.10.22 |