프로그래머스 - 모의고사 - Level 1

Byungwoong An·2021년 6월 25일
0

문제

풀이전략

  1. 각 수포자들마다 찍는 패턴이 있다. 그냥 그 패턴마다 for문 한번 돌려서 정답을 체크해주면 된다.

코드

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

bool mySort(const int& a, const int& b){
    return a > b;
}

vector<int> solution(vector<int> answers) {
    vector<int> answer;
    
    int cnt1 = 0, cnt2 = 0, cnt3 = 0;
    int arr1[] = {1, 2, 3, 4, 5, -1};
    int arr2[] = {2, 1, 2, 3, 2, 4, 2, 5, -1};
    int arr3[] = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5, -1};
    int idx1 = 0, idx2 = 0, idx3 = 0;
    for(int i=0; i<answers.size(); i++){
        if(arr1[idx1] == -1) idx1 = 0;
        if(arr2[idx2] == -1) idx2 = 0;
        if(arr3[idx3] == -1) idx3 = 0;
        
        if(arr1[idx1] == answers[i]) cnt1++;
        if(arr2[idx2] == answers[i]) cnt2++;
        if(arr3[idx3] == answers[i]) cnt3++;
        
        idx1++;
        idx2++;
        idx3++;
    }
    int maxValue = max(cnt1, max(cnt2, cnt3));
    if(cnt1 == maxValue) answer.push_back(1);
    if(cnt2 == maxValue) answer.push_back(2);
    if(cnt3 == maxValue) answer.push_back(3);
    return answer;
}
profile
No Pain No Gain

0개의 댓글