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문으로 구현하였다.
'CodingTest > 백준' 카테고리의 다른 글
[c++] 백준 - 1991: 트리 순회 (0) | 2023.05.24 |
---|---|
[c++] 백준 - 10773: 제로 (1) | 2023.05.21 |
[c++] 백준 - 2577: 숫자의 개수 (0) | 2023.05.21 |
[c++] 백준 - 2816: 디지털 티비 (0) | 2023.05.20 |
[c++] 백준 - 2621: 카드게임 (0) | 2023.05.19 |