{}연습장
대시보드학습스킬 경로문제모의고사라이브 코테복습데이터
문제 목록〉그리디〉동아리 회장 과반 득표← 이전다음 →
#082 · 그리디쉬움카운팅 / 그리디

동아리 회장 과반 득표

문제

동아리 회장 선거의 투표 용지를 개표한 순서대로 기록한 배열 votes가 주어집니다. votes[i]는 i번째로 개표한 표가 찍힌 후보 번호입니다.

회칙상 전체 표의 절반을 초과해 득표한 후보만 회장으로 당선됩니다. 정확히 절반만 얻은 후보는 당선되지 못합니다.

당선된 후보의 번호를 반환하는 solution(votes)를 구현하세요. 당선자가 없으면 -1을 반환합니다.

예시

votes 반환값 설명
[5, 5, 9, 5, 2] 5 5번이 3표로 절반(2.5)을 넘김
[4, 4, 7, 7] -1 둘 다 2표, 절반일 뿐 초과가 아님
[8] 8 유일한 표이므로 당선
[6, 3, 6, 6, 1, 6, 2] 6 6번이 4표로 절반(3.5)을 넘김

제약 조건

  • 1 ≤ votes.length ≤ 100,000
  • 1 ≤ votes[i] ≤ 1,000,000,000
  • 당선자가 존재한다는 보장은 없습니다

시간 복잡도 목표: O(N)

테스트 케이스

예시 1: 5번이 3표 / 5표
입력: votes = [5,5,9,5,2]
출력: 5
예시 2: 정확히 절반씩 → 당선자 없음
입력: votes = [4,4,7,7]
출력: -1
예시 3: 표가 하나뿐
입력: votes = [8]
출력: 8
예시 4: 6번이 4표 / 7표
입력: votes = [6,3,6,6,1,6,2]
출력: 6
동률 6표 → -1
입력: votes = [12,30,12,30,12,30]
출력: -1
큰 후보 번호
입력: votes = [1000000000,1000000000,7]
출력: 1000000000
최다 득표(4표)지만 9표의 절반 미만 → -1
입력: votes = [2,9,4,9,9,1,9,3,5]
출력: -1
보이어-무어 후보가 교체되는 배치
입력: votes = [3,3,3,8,8,3,8]
출력: 3
solution.ts
에디터 로딩 중…

▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.