프로그래머스 42840 - 모의고사
생각 및 접근
문제 갯수만큼 for문을 돌면서, 각 학생의 찍은 답이 정답이라면, 정답 갯수를 늘려주기로 했다.
for(int i = 0; i < answers.size(); i++){ if(answers[i] == (std1[i % 5])) score[1]++; if(answers[i] == (std2[i % 8])) score[2]++; if(answers[i] == (std3[i % 10])) score[3]++; }
answers
순회를 마치고, 학생들 중에서 가장 높은 점수를 기록하고, 그 점수를 얻은 학생을answer
에push_back
한다.int max = *max_element(score + 1, score + 4); for(int i = 1; i <= 3; i++){ if(max == score[i]) answer.push_back(i); }
코드
#include <bits/stdc++.h>
using namespace std;
vector<int> answer;
int score[4];
int std1[5] = {1, 2, 3, 4, 5};
int std2[8] = {2, 1, 2, 3, 2, 4, 2, 5};
int std3[10] = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
vector<int> solution(vector<int> answers) {
for(int i = 0; i < answers.size(); i++){
if(answers[i] == (std1[i % 5])) score[1]++;
if(answers[i] == (std2[i % 8])) score[2]++;
if(answers[i] == (std3[i % 10])) score[3]++;
}
int max = *max_element(score + 1, score + 4);
for(int i = 1; i <= 3; i++){
if(max == score[i]) answer.push_back(i);
}
return answer;
}
채점 결과
'Coding Test > programmers' 카테고리의 다른 글
프로그래머스 42841 - 숫자 야구 (c++) (0) | 2020.07.30 |
---|---|
프로그래머스 42893 - 소수 찾기 (c++) (0) | 2020.07.30 |
프로그래머스 42898 - 등굣길 (c++) (0) | 2020.07.29 |
프로그래머스 43105 - 정수 삼각형 (c++) (0) | 2020.07.29 |
프로그래머스 43104 - 타일 장식물 (c++) (0) | 2020.07.29 |