← 실전 문제

중복 점수를 건너뛰는 순위

C++디버깅

서로 다른 점수들을 큰 순서대로 1위, 2위, …로 매겨요. 같은 점수는 같은 순위 하나로 취급해요. k번째로 높은 서로 다른 점수를 반환하고, 그 순위가 없으면 -1을 반환해요.

int solution(vector<int> scores, int k)가 요구한 값을 반환하도록 잘못된 한 줄만 수정해 주세요.

매개변수와 반환값

scores의 길이는 0100, 점수는 01,000이에요. k는 1101이에요. 반환값은 01,000의 점수 또는 -1이에요.

예시

  1. scores={90, 90, 70, 50}, k=2이면 70를 반환해요. 서로 다른 점수는 90·70·50이라 2위 점수는 70이에요.
  2. scores={4, 4, 4}, k=2이면 -1를 반환해요. 서로 다른 점수가 4 하나뿐이라 2위가 없어요.

실행용 입출력

첫 줄에 점수 수 n k, 다음 줄에 점수 n개를 입력해요. n=0이면 점수 줄은 없어도 돼요. main은 입력을 매개변수로 바꾸고 반환값을 출력하는 채점 하네스예요. 풀이 대상은 solution의 한 줄이에요.

예시 입력

4 2
90 90 70 50

예상 결과

70

예시 입력

3 2
4 4 4

예상 결과

-1
핵심 개념
  • basic-sort-search: 정렬 뒤의 기준과 순서를 읽어요.
  • conditionals: 조건과 정확한 경계를 판별해요.
  • stl-vector: 벡터의 크기와 인덱스로 매개변수를 읽어요.

코드 작성과 채점은 로그인 후 이용해요

로그인하고 풀기