본문 바로가기
알고리즘/백준 문제

1205 - 등수 구하기

by HDobby 2023. 2. 27.

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

 

1205번: 등수 구하기

첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보

www.acmicpc.net

생각해 보기

  • N이 P보다 작은 경우
  • 모든 배열과 비교했지만 답이 나오지 않은 경우
    • 마지막 배열 값과 동일한가?
    • 작으면 P 범위를 벗어나는지

예제

더보기
10 1 11
1 1 1 1 1 1 1 1 1 1
답: 1
3 70 10
100 90 80
답: 4

코드

더보기
#include<iostream>
#include<vector>

using namespace std;

int N,T,P;
vector<int> ranks;

void input(){
    cin>>N>>T>>P;
    ranks.resize(N+1);
    for(int i=0;i<N;++i){
        cin>>ranks[i];
    }
}

void solution(){
    int cnt=1;
    for(int i=0;i<N&&i<P;++i){
        if(ranks[i]<T){
            if(i>0&&ranks[i-1]>T)
                cnt=i+1;
            cout<<cnt<<'\n';
            return;
        }
        if(i>0&&ranks[i-1]>ranks[i])
            cnt=i+1;
    }
    
    if(N<P){
        if(ranks[N-1]==T)
            cout<<cnt<<'\n';
        else
            cout<<N+1<<'\n';
    } 
    else
        cout<<-1<<'\n';
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    input();
    solution();

    return 0;
}

728x90

'알고리즘 > 백준 문제' 카테고리의 다른 글

20920 - 영단어 암기는 괴로워  (0) 2023.02.28
1244 - 스위치 켜고 끄기  (0) 2023.02.28
20125 - 쿠키의 신체 측정  (0) 2023.02.27
25757 - 임스와 함께하는 미니게임  (0) 2023.02.24
8979 - 올림픽  (0) 2023.02.24

댓글