[ 문제 ]
8979번: 올림픽
입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각
www.acmicpc.net
[ 접근방법 ]
금, 은, 동메달 수 및 국가 번호를 갖는 구조체를 선언한다.
금, 은, 동메달 수에 따라 정렬을 해 주고 난 뒤, 국가 번호를 비교하여 원하는 국가가 몇 등인지 확인한다.
[ 소스코드 ]
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Cty
{
int g, s, b, idx;
};
bool cmp(Cty x, Cty y)
{
if (x.g > y.g)
return true;
else if (x.g == y.g)
{
if (x.s > y.s)
return true;
else if (x.s == y.s)
{
if (x.b > y.b)
return true;
}
}
return false;
}
int n, k, ans;
vector<Cty> v;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> k;
v.resize(n);
for (int i = 0; i < n; i++)
cin >> v[i].idx >> v[i].g >> v[i].s >> v[i].b;
sort(v.begin(), v.end(), cmp);
for (int i = 0; i < n; i++)
{
if (v[i].idx == k)
{
ans = i;
break;
}
}
for (int i = ans - 1; i >= 0; i--)
{
if (v[i].g == v[ans].g && v[i].s == v[ans].s && v[i].b == v[ans].b)
ans--;
else
break;
}
cout << ans + 1;
return 0;
}
'PS' 카테고리의 다른 글
[ 백준 / C++ ] 11779 : 최소비용 구하기 2 (0) | 2024.04.24 |
---|---|
[ 백준 / C++ ] 1915 : 가장 큰 정사각형 (0) | 2024.04.23 |
[ 백준 / C++ ] 1202 : 보석 도둑 (0) | 2024.04.19 |
[ 백준 / C++ ] 18111 : 마인크래프트 (0) | 2024.04.18 |
[ 백준 / C++ ] 11758 : CCW (0) | 2024.04.17 |