수포자 3명의 규칙성을 찾고, 벡터로 도식화하자
문제랑 수포자 3명의 답안 이랑 비교해야 하므로 2차원 for문 을 사용해야 함.
수포자 3명의 답안이 마지막번 다음에 첫번째로 복귀해 하므로
이부분을 주의 깊게 생각해보자
-> 나머지를 이용하면 첫번째 답안으로 복귀 가능하다.
최대값을 찾는 것이므로
임시 벡터를 만들어서 수포자들의 점수를 넣고, 최대값을 갱신 한 다음에
최대값과 수포자들의 값을 비교하면서 원래 구하려는 정답의 벡터를 삽입해주자.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> answers) {
vector<int> answer;
vector<int> score;
vector<int> v[3] = {{1,2,3,4,5} , {2,1,2,3,2,4,2,5}
, {3,3,1,1,2,2,4,4,5,5}};
for(int i = 0; i < 3; i++)
{
int size = v[i].size();
int cnt = 0;
for(int j = 0; j < answers.size(); j++)
{
if(answers[j] == v[i][j % size])
cnt++;
}
score.push_back(cnt);
}
//오름차순...
int max = -1;
for(int i = 0; i< 3; i++)
{
if(max < score[i])
max = score[i];
}
for(int i = 0; i< 3; i++)
{
if(max == score[i])
answer.push_back(i + 1);
}
return answer;
}