← 실전 문제

동점에서 선택할 참가자

C++디버깅

기록의 각 행은 [참가자 번호, 정답 수, 벌점]이에요. 정답 수가 많을수록 앞에, 같으면 벌점이 작을수록 앞에, 두 값 모두 같으면 번호가 작을수록 앞에 놓아요.

int solution(vector<vector<int>> records, int k)가 정렬 결과의 k번째 참가자 번호를 반환하도록 잘못된 한 줄을 고쳐 주세요. 여기서는 공동 순위가 아니라 정렬한 배열의 위치를 선택해요.

참가자 수 N은 130, 각 행 길이는 3이고 번호 1N이 각각 한 번 나와요. 입력 순서는 임의예요. 정답 수는 0100, 벌점은 01,000, k는 1~N이에요. 빈 입력은 없고 반환형은 int예요.

예시 1: records = {{3, 8, 2}, {1, 8, 2}, {2, 8, 4}}, k = 2 → 3. 순서는 1·3·2번이에요.

예시 2: records = {{1, 4, 9}, {2, 5, 8}, {3, 5, 7}}, k = 1 → 3. 정답 수가 많은 두 명 중 벌점이 작은 3번이 먼저예요.

실행 입력은 N k와 다음 N줄의 세 값이에요. main은 함수 호출용 하네스이며 번호 하나를 출력해요.

예시 입력

3 2
3 8 2
1 8 2
2 8 4

예상 결과

3

예시 입력

3 1
1 4 9
2 5 8
3 5 7

예상 결과

3
핵심 개념
  • basic-sort-search: 비교 기준과 동률을 정확하게 적용해요.
  • conditionals: 포함·제외 경계와 상태별 분기를 적용해요.
  • stl-vector: 원소 순서와 길이를 계약에 맞게 유지해요.

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

로그인하고 풀기