"꾸준하고 완벽한 한 걸음"

PS/Baekjoon Online Judge

[백준 11637] 인기 투표 [Java]

kimyoungrok 2025. 4. 24. 14:32
728x90

문제

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

 


풀이

N명의 후보자에 대한 투표수가 주어질 때 다음 조건에 따라 올바른 문구를 출력하면 된다.

  • 최다 득표자가 과반수 득표를 했을 때
  • 최다 득표자가 절반 이하의 득표를 했을 때
  • 최다 득표자가 2명 이상일 때

이를 위해서는 최다 득표 수와, 최다 득표자의 순서, 전체 투표수를 구해야 한다.

            int max = -1, idx = -1, sum = 0;
            for (int i = 0; i < N; ++i) {
                A[i] = Integer.parseInt(br.readLine());
                sum += A[i];
                // Solve
                if (A[i] > max) {
                    max = A[i];
                    idx = i;
                }
            }

이후 최다 득표자가 2명인지 확인 후

            int maxCnt = 0;
            for (int a : A) {
                if (a == max) {
                    ++maxCnt;
                }
            }

문제에서 주어진 조건에 따라 올바른 문구를 출력하면 된다.

            if (maxCnt == 1) {
                sb.append(max > sum >> 1 ? "majority winner " : "minority winner ").append(idx + 1).append("\\n");
            } else {
                sb.append("no winner\\n");
            }

풀이 시간

≤ 5m


소스코드

https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/practice/11637.java

 

problem-solving/baekjoon-online-judge/practice/11637.java at main · rogi-rogi/problem-solving

Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.

github.com

 

728x90