https://www.acmicpc.net/problem/8979
문제
국가의 수 N(1<=N<=1000)와, 확인할 국가의 번호 K, 각 국가의 번호와 금, 은, 동메달의 수를 입력받는다. K번 국가의 등수를 출력한다.
풀이
1. sort를 이용해 금, 은, 동메달의 수를 정렬하고, 해당되는 국가의 번호의 등수를 앞에서 부터 세는 방법
2. 반복문으로 자신을 제외한 모든 국가에 대해 메달의 수를 비교하고 자신보다 등수가 높은 경우 cnt++을 하는 방법
* 단 4개의 국가 중 2,3등의 메달이 같다면 공동 2등 2명과 4등 한 명으로 간주한다.
1번 풀이 방법 코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n, k, a, b, c, d, cnt = 1;
vector<pair<pair<int, int>, pair<int, int>>> v;
int main() {
cin >> n >> k;
for (int i = 0; i < n; i++) {
cin >> a >> b >> c >> d;
v.push_back({ {b,c},{d,a} });
}
sort(v.rbegin(), v.rend());
for (int i = 0; i < v.size(); i++) {
if (v[i].second.second == k) break;
if (v[i].first.first==v[i+1].first.first
&& v[i].first.second==v[i+1].first.second
&& v[i].second.first == v[i+1].second.first)
continue;
cnt = i + 2;
}
cout << cnt;
}
'Koala - 14기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/python] 1932번 정수 삼각형 (0) | 2024.03.24 |
---|---|
[백준/python] 백준 자원캐기 (0) | 2024.03.24 |
[백준/python] 11726 2xn 타일링 (0) | 2024.03.24 |
[백준/python] 11047 동전0 (0) | 2024.03.24 |
[백준/Python] 5557 - 1학년 (0) | 2024.03.24 |