Gidhub BE Developer

[BOJ] 올림픽

2018-04-15
goodGid

Problem

Problem URL : 올림픽


[1] Answer Code (18. 04. 15)




#include<iostream>
using namespace std;

typedef struct {
    int gold;
    int silver;
    int bronze;
} country;

int solve(int idx, country *cou, int max){
    int rank=1;
    for(int i=1; i<=max; i++){
        if(cou[idx].gold < cou[i].gold) rank++;
        else if(cou[idx].gold == cou[i].gold && cou[idx].silver < cou[i].silver)    rank++;
        else if(cou[idx].gold == cou[i].gold && cou[idx].silver == cou[i].silver && cou[idx].bronze < cou[i].bronze)    rank++;
        else continue;
    }
    return rank;
}

int main(){
    country cou[1001];
    int n,k;
    cin >> n >> k;
    for(int i=1; i<=n; i++){
        int idx;
        scanf("%d",&idx);
        scanf("%d%d%d",&cou[idx].gold,&cou[idx].silver,&cou[idx].bronze);
    }
    
    printf("%d\n",solve(k, cou, n));
    return 0;
}






Code Review

[1] Answer Code (18. 04. 15)

  • 정보올림피아드 문제

  • 굳은 나의 사고를 깨워준 문제이다.

  • 아마 전체를 정렬하고 그 다음 원하는 결과값을 찾으려고 접근할텐데 굳이 그럴필요가 있을까?

  • 전체에서 내가 필요한 인덱스가 몇 번째인지만 알면 된다!

  • 추가적으로
    int solve(int idx, country *cou, int max) 여기에서 country *cou 사용법 제대로 익히자.

  • Delete - reSolve (18. 08. 03)


Recommend

Index