문제

풀이전략
- 각 수포자들마다 찍는 패턴이 있다. 그냥 그 패턴마다 for문 한번 돌려서 정답을 체크해주면 된다.
코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool mySort(const int& a, const int& b){
return a > b;
}
vector<int> solution(vector<int> answers) {
vector<int> answer;
int cnt1 = 0, cnt2 = 0, cnt3 = 0;
int arr1[] = {1, 2, 3, 4, 5, -1};
int arr2[] = {2, 1, 2, 3, 2, 4, 2, 5, -1};
int arr3[] = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5, -1};
int idx1 = 0, idx2 = 0, idx3 = 0;
for(int i=0; i<answers.size(); i++){
if(arr1[idx1] == -1) idx1 = 0;
if(arr2[idx2] == -1) idx2 = 0;
if(arr3[idx3] == -1) idx3 = 0;
if(arr1[idx1] == answers[i]) cnt1++;
if(arr2[idx2] == answers[i]) cnt2++;
if(arr3[idx3] == answers[i]) cnt3++;
idx1++;
idx2++;
idx3++;
}
int maxValue = max(cnt1, max(cnt2, cnt3));
if(cnt1 == maxValue) answer.push_back(1);
if(cnt2 == maxValue) answer.push_back(2);
if(cnt3 == maxValue) answer.push_back(3);
return answer;
}