최대 1 분 소요

[프로그래머스] 모의고사

문제 링크


#include "header.h"
using namespace std;
vector <vector<int>> supo = {{1, 2, 3, 4, 5}, {2, 1, 2, 3, 2, 4, 2, 5}, {3, 3, 1, 1, 2, 2, 4, 4, 5, 5}};
int sz[3] = {5, 8, 10};
vector<int> solution(vector<int> answers) {
    vector<int> answer;
    vector <int> score(3);
    int max_score = 0;
    
    for(int i=0; i<answers.size(); i++){
        for(int j=0; j<3; j++){
            if(answers[i] == supo[j][i % sz[j]]){
                score[j]++;
                max_score = max(max_score, score[j]);
            }
        }
    }
    
    for(int i=0; i<3; i++){
        if(score[i] == max_score){
            answer.push_back(i+1);
        }
    }
    for(auto a : score){
        cout << a;
    }
    cout << endl;
    sort(answer.begin(), answer.end());
    
    return answer;
}

int main(){
    vector <int>ans = solution({1,3,2,4,2});
    cout << "ans" << endl;
    for(auto a : ans){
        cout << a << endl;
    }
    return 0;
}


  • 수포자가 3명 밖에 없기 때문에 미리 벡터로 선언 해 주었다.
  • 계속해서 같은 번호로 찍기 때문에 첫 번째 반복문에서 모듈화 연산을 통해 answer의 크기만큼 반복할 수 있도록 해주었다.

카테고리:

업데이트: