728x90
반응형
문제
코드
vector<int> solution(vector<int> answers) {
vector<int> answer;
vector<int> first{1,2,3,4,5};
vector<int> second{2,1,2,3,2,4,2,5};
vector<int> third{3,3,1,1,2,2,4,4,5,5};
vector<int> score(3,0);
for(int i = 0 ;i< answers.size(); ++i)
{
if(answers[i] == first[i % first.size()])
{
score[0]++;
}
if(answers[i] == second[i % second.size()])
{
score[1]++;
}
if(answers[i] == third[i % third.size()])
{
score[2]++;
}
}
int maxScore = *max_element(score.begin(), score.end());
for(int i = 0; i<3; ++i)
{
if(score[i] == maxScore)
{
answer.emplace_back(i+1);
}
}
return answer;
}
문제 해설
- 수포자 1,2,3 의 패턴이 담긴 배열을 만든다.
- 수포자들의 정답을 카운트할 score 배열을 만든다.
- answers를 for문을 이용해 수포자들의 패턴이 담긴 배열과 정답이 일치하면 해당 수포자의 점수를 올린다.
- max_element 로 최고 점수를 찾는다.
- 최고 점수와 수포자들의 정답 점수를 비교해 최고 점수와 일치하는 수포자를 answer에 넣어준다.
728x90
반응형
'코딩테스트 > 프로그래머스(C++)_Level.1' 카테고리의 다른 글
[프로그래머스/C++] Lv.1 소수 찾기 (0) | 2024.01.04 |
---|---|
[프로그래머스/C++] Lv.1 카드 뭉치 (0) | 2024.01.02 |
[프로그래머스/C++] Lv.1 폰케몬 (0) | 2023.12.28 |
[프로그래머스/C++] Lv.1 푸드 파이트 대회 (0) | 2023.12.19 |
[프로그래머스/C++] Lv.1 두 개 뽑아서 더하기 (0) | 2023.12.14 |