https://school.programmers.co.kr/learn/courses/30/lessons/42840
벡터에 수포자들이 찍는 루틴을 넣어놓고,
루틴이 계속 반복되니까 나머지 연산을 통해 계산해주면 된당.
이렇게 루틴이 있는 경우, 배열에 넣어놓자!
그리고,,
벡터의 최대, 최소 원소 구하기
<algorithm>
라이브러리의
max_element(시작, 끝)
!!!
다만,
리턴값이 iterator이므로
값을 구하고 싶으면*max_element(m, n)
으로 구해야 한당.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> answers) {
vector<int> answer;
vector<vector<int>> pick{{1, 2, 3, 4, 5}, {2, 1, 2, 3, 2, 4, 2, 5}, {3, 3, 1, 1, 2, 2, 4, 4, 5, 5}};
vector<int> cnts{0, 0, 0};
for (int i = 0 ; i < answers.size() ; i++) {
if (answers[i] == pick[0][i % 5]) cnts[0] += 1;
if (answers[i] == pick[1][i % 8]) cnts[1] += 1;
if (answers[i] == pick[2][i % 10]) cnts[2] += 1;
}
int max = *max_element(cnts.begin(), cnts.end());
for (int i = 0 ; i < 3 ; i++) {
if (cnts[i] == max) {
answer.emplace_back(i+1);
}
}
return answer;
}