#include <iostream>
#include<vector>
using namespace std;
vector<int> a{ 1,2,3,4,5 };
vector<int> b{ 2,1,2,3,2,4,2,5 };
vector<int> c{ 3,3,1,1,2,2,4,4,5,5 };
vector<int> ret(3, 0);
int main()
{
int n = 5;
for (int i = 0; i < n; i++)
{
int temp{};
cin >> temp;
if (a[i] == temp)
ret[0]++;
if (b[i] == temp)
ret[1]++;
if (c[i] == temp)
ret[2]++;
}
int m = *max_element(ret.begin(), ret.end());
for (int i = 0; i < ret.size(); i++)
{
if (ret[i] == m)
cout << i+1 << " ";
}
}
- 수표자들이 문제를 찍는 패턴을 저장, 각 학생들을 저장한 벡터 ret을 만든 뒤 현재 문제의 정답을 맞준 학생의 ret에 index에 ++을 하여 최고점을 맞은 학생을 구할 수 있다
- 이때 max_element를 사용하여 컨테이너 안에 가장 높은 값을 갖고있는 iterator를 구할 수 있는데 여기에 *를 활용해 그 안의 값을 m 에 저장하면 최고점을 m에 저장할 수 있다
- 이제 for문을 통해 ret안에 있는 학생들의 점수와 m을 비교해 같은 점수를 가진 학생들의 index+1을 출력해주면 된다