프로그래머스 모의고사
문제
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/42840
풀이
나머지 연산을 통해 알 수있는 반복되는 구간의 값과 정답배열을 비교하여 정답시 각 수포자의 해당되는 score 배열을 증가시킨다.
그리고 highScore
변수에 score
배열에서 가장높은 값을 저장하고 highScore
값과 동일한 점수를 받은 수포자에 해당되는 인덱스(i+1)를 answer
배열에 담고 리턴했다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> answers) {
vector<int> answer;
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 score[3] = {};
int size = answers.size();
int highScore = 0;
for (int i = 0; i < size; i++)
{
if (answers[i] == arr1[i % 5])
{
score[0]++;
}
if (answers[i] == arr2[i % 8])
{
score[1]++;
}
if (answers[i] == arr3[i % 10])
{
score[2]++;
}
}
highScore = score[0];
for (int i = 0; i < 3; i++)
{
if (highScore < score[i])
{
highScore = score[i];
}
}
for (int i = 0; i < 3; i++)
{
if (highScore == score[i])
{
answer.push_back(i+1);
}
}
return answer;
}
댓글남기기