[백준 10102] 개표 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
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;
}