수포자 1, 2, 3의 찍는 방식 패턴을 구하고 있었다.. 그게 아니고 진짜 하나씩 비교하고 계산해주면 되는 문제
구현
#include <iostream>
#include <algorithm> // max
#include <vector>
using namespace std;
vector<int> solution(vector<int> answers) {
vector<int> answer;
vector<int> v1 = { 1, 2, 3, 4, 5 };
vector<int> v2 = { 2, 1, 2, 3, 2, 4, 2, 5 };
vector<int> v3 = { 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 };
int size = answers.size();
int a1, a2, a3, i;
a1 = a2 = a3 = 0;
for (i = 0; i < size; i++) {
if (v1[i % 5] == answers[i]) a1++;
if (v2[i % 8] == answers[i]) a2++;
if (v3[i % 10] == answers[i]) a3++;
}
int m = max(a1, max(a2, a3));
if (a1 == m) answer.push_back(1);
if (a2 == m) answer.push_back(2);
if (a3 == m) answer.push_back(3);
return answer;
}