코딩하기 좋은날
백준 8979 올림픽 본문
반응형
https://www.acmicpc.net/problem/8979
문제와 채점은 위 사이트에서 확인 하실 수 있습니다.
이 문제는 각 국가의 금메달 은메달 동메달 개수를 입력받고 K국가의 등수를 구하는 문제입니다.
등수를 구하는 기준은 금메달 , 은메달, 동메달이 많은 순서로 우선순위가 정해집니다. 모든 메달의 개수가 동일할 경우 에는 동일 등수로 정해집니다.
K국가의 등수를 알고싶다면 K국가보다 등수가 높은 국가들을 단순히 세주기만 하면 될것입니다. 따라서 K국가의 금,은,동메달의 개수를 따로 저장해놓고 전체국가를 돌면서 K국가보다 금,은,동메달의 개수가 더많은 국가들을 세어주면 해결이 됩니다.
다음은 코드입니다.
#include <iostream>
using namespace std;
struct country {
int ind;
int gold,silver,bronze;
} c1[1001];
int main(void) {
ios_base::sync_with_stdio(false); cin.tie(NULL);
int N,K; cin >> N >> K;
int mygold,mysilver,mybronze;
for(int i = 0; i < N; i++) {
cin >> c1[i].ind >> c1[i].gold >> c1[i].silver >> c1[i].bronze;
if(c1[i].ind == K) {
mygold = c1[i].gold;
mysilver = c1[i].silver;
mybronze = c1[i].bronze;
}
}
int cur = 1;
for(int i = 0; i < N; i++) {
if(c1[i].ind == K) continue;
if(c1[i].gold > mygold) cur++;
else if(c1[i].gold == mygold && c1[i].silver > mysilver) cur++;
else if(c1[i].gold == mygold && c1[i].silver == mysilver && c1[i].bronze > mybronze) cur++;
}
cout<<cur;
return 0;
}
반응형
'백준(Baekjoon) 문제' 카테고리의 다른 글
백준 16500 문자열 판별 (0) | 2019.09.05 |
---|---|
백준 14003 가장 긴 증가하는 부분 수열5 (0) | 2019.09.05 |
백준 2935 소음 (0) | 2019.09.05 |
백준 4195 친구 네트워크 (0) | 2019.08.11 |
백준 4485 녹색 옷 입은 애가 젤다지? (0) | 2019.08.11 |