등수 구하기 1205

PublicMinsu·2023년 2월 23일
0

문제

접근 방법

오름차 순으로 정렬해주어야 한다.
N은 P보다 무조건 작거나 같기에 등수를 위에서부터 자르는 문제가 아니다.
나보다 높은 사람만이 내 위로 갈 수 있다.
N이 P와 같을 경우 마지막 수를 비교하면 된다. 내 점수보다 크거나 같은 경우 무조건 나는 순위권 밖이기에 -1을 출력한다.

코드

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
    ios::sync_with_stdio(0), cin.tie(0);
    vector<int> rankList;
    int N, newScore, P;
    cin >> N >> newScore >> P;
    for (int i = 0; i < N; ++i)
    {
        int num;
        cin >> num;
        rankList.push_back(num);
    }
    sort(rankList.begin(), rankList.end(), greater<int>());
    if (N == P && rankList[N - 1] >= newScore)
    {
        cout << -1;
    }
    else
    {
        int cnt = 1;
        for (int i = 0; i < N; ++i)
        {
            if (rankList[i] > newScore)
                ++cnt;
            else
                break;
        }
        cout << cnt;
    }
}

풀이

N이 P보다 큰 경우가 없다는 것에 명심하면 된다.

profile
연락 : publicminsu@naver.com

0개의 댓글