문제 링크: 코딩테스트 연습 > 완전탐색 > 모의고사
문제 이해
알고리즘 구현
알고리즘
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> answers) {
vector<int> answer;
vector<int> stdA{1, 2, 3, 4, 5};
vector<int> stdB{2, 1, 2, 3, 2, 4, 2, 5};
vector<int> stdC{3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
int idxA = 0, idxB = 0, idxC = 0;
int cntA = 0, cntB = 0, cntC = 0;
for (int i = 0; i < answers.size(); ++i) {
if (stdA[idxA % 5] == answers[i]) ++cntA;
if (stdB[idxB % 8] == answers[i]) ++cntB;
if (stdC[idxC % 10] == answers[i]) ++cntC;
++idxA;
++idxB;
++idxC;
}
int maxCnt = max(cntA, max(cntB, cntC));
if (cntA == maxCnt) answer.push_back(1);
if (cntB == maxCnt) answer.push_back(2);
if (cntC == maxCnt) answer.push_back(3);
return answer;
}