[C++][백준 7568] 덩치

PublicMinsu·2024년 1월 5일

문제

접근 방법

N이 50이기에 모든 경우를 확인해 볼 수 있다.
자신보다 덩치가 큰 사람을 세어서 등수를 매겨주면 된다.

코드

#include <iostream>
#include <vector>
using namespace std;
using pii = pair<int, int>;
vector<pii> v;
vector<int> order;
int N;
int main()
{
    ios::sync_with_stdio(0), cin.tie(0);
    cin >> N;

    v = vector<pii>(N);
    order = vector<int>(N);

    for (pii &i : v)
    {
        cin >> i.first >> i.second;
    }

    for (int i = 0; i < N; ++i)
    {
        int rank = 1;
        for (int j = 0; j < N; ++j)
        {
            if (v[i].first < v[j].first && v[i].second < v[j].second) // 자신보다 덩치가 큰 사람
            {
                ++rank;
            }
        }
        order[i] = rank;
    }

    for (int &i : order)
    {
        cout << i << " ";
    }
    return 0;
}

풀이

N이 50인 것을 제대로 확인 안 하고 정렬을 하여서 해결하려 했다.
하지만 2개의 값을 기준으로 정렬하는 것이기에 제대로 된 등수가 나올 리는 없었고 그래서 틀렸다.

이후 다시 제대로 확인해 보니 모든 경우를 확인해서 해결할 수 있는 문제라는 것을 알게 됐다.

자신보다 키와 몸무게가 큰 경우만 세어서 등수로 반영해 주면 된다.

profile
연락 : publicminsu@naver.com

0개의 댓글