728x90
반응형
반응형
문제: 모의고사
풀이 방법
문제를 찍는 방식이 3명 모두 다르니까 반복자를 다르게 설정해줘야 겠다고 생각했다.
for문의 반복자 하나로 간단하게 만들 방법이 반드시 있을거라고 생각하긴 했는데
그 방법이 떠오르지 않아서 반복자를 직접 만들어서 풀었다.
풀이 코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> answers) {
vector<int> answer;
int student_1[] = {1, 2, 3, 4, 5};
int student_2[] = {2, 1, 2, 3, 2, 4, 2, 5};
int student_3[] = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
int std_answers_count[] = {0, 0, 0};
int std_iterator[] = {-1, -1, -1};
for(int i=0; i<answers.size(); i++) {
for(int u=0; u<3; u++) {
std_iterator[u]++;
}
if(std_iterator[0] >= 5) std_iterator[0] = 0;
if(std_iterator[1] >= 8) std_iterator[1] = 0;
if(std_iterator[2] >= 10) std_iterator[2] = 0;
if(answers[i] == student_1[std_iterator[0]]) std_answers_count[0]++;
if(answers[i] == student_2[std_iterator[1]]) std_answers_count[1]++;
if(answers[i] == student_3[std_iterator[2]]) std_answers_count[2]++;
}
int largest = std_answers_count[0];
for(int i=0; i<3; i++) {
largest = max(largest, std_answers_count[i]);
}
for(int i=0; i<3; i++) {
if(std_answers_count[i] == largest) {
answer.push_back(i+1);
}
}
return answer;
}
728x90
반응형
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Level 1, C++] 자릿수 더하기 (0) | 2022.07.05 |
---|---|
[Level 1, C++] 두 정수 사이의 합 (0) | 2022.07.05 |
[프로그래머스 Level 1, C++] 음양 더하기 (0) | 2022.07.05 |
[프로그래머스 Level 1, C++] 포켓몬 (0) | 2022.07.05 |
[Level 1, C++] 나머지가 1이 되는 수 찾기 (0) | 2022.07.04 |