PS/프로그래머스
[ 프로그래머스 ] Lv1 완전탐색 : 모의고사 ( C++/C )
발효홍삼
2022. 3. 10. 20:28
728x90
- 문제
https://programmers.co.kr/learn/courses/30/lessons/42840
코딩테스트 연습 - 모의고사
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는
programmers.co.kr
- 풀이법 ( 알고리즘 )
문제의 크기만큼 반복문을 돌며 수포자 삼인방의 각각 점수를 확인하고 maxScore를 정의해준다. 이후 반복문을 돌며 maxScore와 점수가 같다면 ans 배열에 더해 return한다.
- 풀이 - C++
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> ansOne = {1,2,3,4,5};
vector<int> ansTwo = {2, 1, 2, 3, 2, 4, 2, 5};
vector<int> ansThree = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
vector<int> solution(vector<int> answers) {
vector<int> answer;
int correct[3] = {0,0,0};
for(int i = 0; i < answers.size(); i++)
{
if(answers[i] == ansOne[i % 5])correct[0]++;
if(answers[i] == ansTwo[i % 8])correct[1]++;
if(answers[i] == ansThree[i % 10])correct[2]++;
}
int maxScore = max(correct[0], max(correct[1], correct[2]));
for(int i = 0; i < 3; i++)
{
if(maxScore == correct[i]) answer.push_back(i+1);
}
return answer;
}
728x90