← 실전 문제

마지막 응답으로 가르는 동점

C++빈칸 채우기

응답 기록에서 가장 많이 등장한 후보를 골라요. 최다 등장 횟수가 같으면 마지막 응답이 더 나중에 기록된 후보를 골라요. 응답이 없으면 0을 반환해요.

int solution(vector<int> votes, int kinds)가 요구한 값을 반환하도록 빈칸을 채워 주세요.

매개변수와 반환값

votes의 길이는 0100이에요. kinds는 120, 각 응답의 후보 번호는 1~kinds예요. 반환값은 선택한 후보 번호 또는 응답이 없을 때 0이에요.

예시

  1. votes={1, 2, 1, 2}, kinds=3이면 2를 반환해요. 후보 1과 2가 두 번씩 등장하지만 후보 2의 마지막 응답이 더 뒤에 있어요.
  2. votes={3, 1, 3, 2, 1}, kinds=3이면 1를 반환해요. 후보 1과 3이 두 번씩 등장하며 후보 1의 마지막 응답이 더 뒤에 있어요.

실행용 입출력

첫 줄에 응답 수 n kinds, 다음 줄에 후보 번호 n개를 입력해요. n=0이면 후보 번호 줄은 없어도 돼요. main은 입력을 매개변수로 바꾸고 반환값을 출력하는 채점 하네스예요. 풀이 대상은 solution과 제공된 보조 함수의 빈칸이에요.

예시 입력

4 3
1 2 1 2

예상 결과

2

예시 입력

5 3
3 1 3 2 1

예상 결과

1
핵심 개념
  • counting-aggregation: 항목별 횟수와 최종 집계를 구분해요.
  • conditionals: 조건과 정확한 경계를 판별해요.
  • stl-vector: 벡터의 크기와 인덱스로 매개변수를 읽어요.

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

로그인하고 풀기