CodingTest/백준
[c++] 백준 - 8979번: 올림픽
Daybreak21
2023. 5. 21. 20:48
8979번: 올림픽
입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각
www.acmicpc.net
#include <iostream>
using namespace std;
struct Country {
int gold;
int silver;
int bronze;
};
int main() {
int N, K, tmp, ranking = 1; cin >> N >> K;
Country* ctr = new Country[N+1]; //0번째는 무시
for (int i = 0; i < N; i++) {
cin >> tmp;
cin >> ctr[tmp].gold >> ctr[tmp].silver >> ctr[tmp].bronze;
}
for (int i = 1; i < N+1; i++) {
if (ctr[i].gold > ctr[K].gold) ranking++;
else if (ctr[i].gold == ctr[K].gold) {
if (ctr[i].silver > ctr[K].silver) ranking++;
else if (ctr[i].silver == ctr[K].silver) {
if (ctr[i].bronze > ctr[K].bronze) ranking++;
}
}
}
cout << ranking;
return 0;
}
구조체배열을 이용하여 풀었다.
전체국가의 등수를 구하는것이 아닌 더 잘한 국가수만 센 값이 정답이기때문에
K번째국가보다 금메달이 많으면 +1;
금메달수가 같으면 은메달수 비교
은메달수가 같으면 동메달수 비교
이런문장을 if문으로 구현하였다.