프로그래머스 모의고사

문제

1

문제 출처 : 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;
}

댓글남기기