작성일 :

문제 링크

10102번 - 개표

설명

A와 B 두 후보에 대한 투표 결과가 주어지는 상황에서, 투표 수 V (1 ≤ V ≤ 15)와 각 심사위원의 투표 결과(A 또는 B)가 문자열로 주어질 때, 더 많은 표를 받은 후보를 출력하는 문제입니다.

A가 더 많은 표를 받으면 “A”, B가 더 많은 표를 받으면 “B”, 동점이면 “Tie”를 출력합니다.


접근법

투표 결과 문자열을 순회하면서 A의 개수와 B의 개수를 각각 셉니다.

두 개수를 비교하여 더 큰 쪽의 후보를 출력하고, 같으면 동점을 출력합니다.

투표 수가 최대 15개로 매우 작으므로 단순 카운트로 충분합니다.



Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;

namespace Solution {
  class Program {
    static void Main(string[] args) {
      var v = int.Parse(Console.ReadLine()!);
      var votes = Console.ReadLine()!;

      var countA = 0;
      var countB = 0;
      for (var i = 0; i < v; i++) {
        if (votes[i] == 'A') countA++;
        else if (votes[i] == 'B') countB++;
      }

      if (countA > countB) Console.WriteLine("A");
      else if (countA < countB) Console.WriteLine("B");
      else Console.WriteLine("Tie");
    }
  }
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int v; cin >> v;
  string votes; cin >> votes;

  int countA = 0, countB = 0;
  for (int i = 0; i < v; i++) {
    if (votes[i] == 'A') countA++;
    else if (votes[i] == 'B') countB++;
  }

  if (countA > countB) cout << "A\n";
  else if (countA < countB) cout << "B\n";
  else cout << "Tie\n";
  
  return 0;
}