백준 8979번: 올림픽

Se0ng_1l·2022년 7월 11일
0

백준

목록 보기
27/40

https://www.acmicpc.net/problem/8979

문제 접근

구분은 정렬로 되어있는 문제지만 정렬알고리즘을 사용하지 않고 구현했다.
 

아래 조건에 맞춰 조건문을 사용하여 구현

금메달 수가 더 많은 나라
금메달 수가 같으면, 은메달 수가 더 많은 나라
금, 은메달 수가 모두 같으면, 동메달 수가 더 많은 나라

#include <iostream>
using namespace std;

int main()
{
    int num, pick;
    cin >> num >> pick;

    int **country = new int*[num];
    for(int i = 0; i < num; i++)
    {
        country[i] = new int[4];
        country[i][0] = -1;
    }
    int cnt = num;
    int name;
    while(cnt != 0)
    {
        cin >> name;
        if(name <= num && country[name - 1][0] == -1) {
            cnt--;
            country[name - 1][0] = name;
            for (int i = 1; i < 4; i++)
                scanf("%d", &country[name - 1][i]);
        }
    }

    int score = 0;
    for(int i = 0; i < num; i++)
    {
        if(i == pick - 1)
            continue;
        else
        {
            if(country[i][1] > country[pick - 1][1])
                score++;
            else if(country[i][1] == country[pick - 1][1]){
                if(country[i][2] > country[pick - 1][2])
                    score++;
                else if(country[i][2] == country[pick - 1][2])
                {
                    if(country[i][3] > country[pick - 1][3])
                        score++;
                }
            }
        }
    }
    cout << score + 1 << endl;

    for(int i = 0; i < num; i++)
    {
        delete [] country[i];
    }
    delete [] country;
}
profile
치타가 되고 싶은 취준생

0개의 댓글