https://www.acmicpc.net/problem/2966
🔔 문제 :
상근이는 A,B,C 순서로
창영이는 B,A,B,C 순서로
현진이는 C,C,A,A,B,B, 순서로 정답을 찍습니다.
필기시험의 정답이 (1<= N <= 100) N개 주어질 때,
정답을 가장 많이 맞춘 갯수와,
그 사람의 아이디를 출력합니다 (중복일 경우, 상근 창영 현진 순서대로 출력해줍니다.)
상근 ID = Adrian
창영 ID = Bruno
현진 ID = Goran
🔔 Kick Point :
나머지 연산자인 '%' 를 사용하여 몇개를 맞췄는지 구하는 문제입니다.
🔔 Code :
#include <iostream>
using namespace std;
int main() {
char a[3] = { 'A', 'B', 'C' };
char b[4] = { 'B', 'A', 'B', 'C'};
char c[6] = { 'C', 'C', 'A', 'A', 'B', 'B'};
int score[3] = {0,0,0};
int n; cin >> n;
for (int i = 0; i < n; i++) {
char tmp; cin >> tmp;
if (a[i % 3] == tmp) score[0]++;
if (b[i % 4] == tmp) score[1]++;
if (c[i % 6] == tmp) score[2]++;
}
int Max(0);
for (int i = 0; i < 3; i++) {
Max = score[i] > Max ? score[i] : Max;
}
cout << Max << endl;
if (Max == score[0]) cout << "Adrian" << endl;
if (Max == score[1]) cout << "Bruno" << endl;
if (Max == score[2]) cout << "Goran" << endl;
}