문제 & 링크
https://www.acmicpc.net/problem/8979
풀이
1. vector 자료구조를 사용하여 입력받을 각 나라별 금, 은, 동메달의 개수를 저장한다.
2. 등수를 알고 싶은 국가와 국가 번호가 같을 때 해당 인덱스를 저장한다.
3. for문을 이용하여 등수를 알고 싶은 국가와 그 외 다른 모든 국가를 비교하며 rank 변수를 조정한다.
* 자기 자신보다 등수가 높은 국가가 몇 개인지 알면 되기에, 금 -> 은 -> 동 순서로 메달을 비교하며 순위를 떨어뜨린다(변수 값은 상승).
코드
#include <iostream>
#include <vector>
using namespace std;
int main() {
int N, K;
cin >> N >> K;
vector<int> G;
vector<int> S;
vector<int> B;
int num, g, s, b;
int idx;
for (int i = 0; i < N; i++) {
cin >> num >> g >> s >> b;
if (K == num) idx = i;
G.push_back(g);
S.push_back(s);
B.push_back(b);
}
int rank = 1;
for (int i = 0; i < N; i++) {
if (G[i] > G[idx]) rank++;
else if (G[i] == G[idx]) {
if (S[i] > S[idx]) rank++;
else if (S[i] == S[idx]) {
if (B[i] > B[idx]) rank++;
}
}
}
cout << rank;
return 0;
}
'Koala - 15기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 1673 : 치킨 쿠폰 (0) | 2024.07.21 |
---|---|
[백준/C++] 11880번: 개미 (0) | 2024.07.20 |
[백준/Python] 2947번: 나무 조각 (0) | 2024.07.19 |
[백준/Python] 1551번: 수열의 변화 (0) | 2024.07.15 |
[백준/Python] 1475번 : 방 번호 (0) | 2024.07.14 |