반응형
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42840
문제 풀이
수포자 3인방의 찍는 방식을 미리 배열에 담아두고 answers 배열을 돌며 정답이면 3인방의 카운트 배열에 ++해주면 된다.
가장 높은 점수인 사람을 배열에 담아 리턴해주면 된다. 동점자인 경우도 포함한다.
소스 코드
#include <vector>
using namespace std;
vector<int> solution(vector<int> answers) {
int arr1[5] = {1,2,3,4,5};
int arr2[8] = {2,1,2,3,2,4,2,5};
int arr3[10] = {3,3,1,1,2,2,4,4,5,5};
int cnt[3] = { 0, };
vector<int> ret;
for(int i=0; i<answers.size(); i++){
if(arr1[i%5] == answers[i]) cnt[0]++;
if(arr2[i%8] == answers[i]) cnt[1]++;
if(arr3[i%10] == answers[i]) cnt[2]++;
}
int maxVal = cnt[0];
for(int i=1; i<3; i++){
if(maxVal < cnt[i])
maxVal = cnt[i];
}
for(int i=0; i<3; i++){
if(maxVal == cnt[i])
ret.push_back(i+1);
}
return ret;
}
반응형
'Programming Solve > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 카펫 / C++ (0) | 2022.02.06 |
---|---|
프로그래머스 - 소수 찾기 / C++ (0) | 2022.02.06 |
프로그래머스 - 구명보트 / C++ (0) | 2022.02.05 |
프로그래머스 - 큰 수 만들기 / C++ (0) | 2022.02.05 |
프로그래머스 - 조이스틱 & BOJ - 고득점 / C++ (0) | 2022.02.05 |