プログラマー-模擬試験

2328 ワード

ポリシー


  • 3つの水泡の規則性を見つけ,次いでベクトルを用いて式化した.

  • 問題を3つの小胞子の答えと比較するため,2次元for文を用いる.

  • 3人の逮捕者の答えは最後の後、初めてに戻る.
    この部分をよく考えてみると
    ->残りを利用して最初の答えに戻ることができます.

  • これは、最大値を検索することを意味します.
    一時ベクトルを作成し、キャッチャーのスコアを追加し、最大値を更新します.
    最大値と捕手の値を比較しながら,本来要求された正解のベクトルを挿入する.
  • ソースコード

    #include <string>
    #include <vector>
    
    using namespace std;
    
    vector<int> solution(vector<int> answers) {
        vector<int> answer;
        vector<int> score;
        vector<int> v[3] = {{1,2,3,4,5} , {2,1,2,3,2,4,2,5}
                           , {3,3,1,1,2,2,4,4,5,5}};
        
        
        for(int i = 0; i < 3; i++)
        {
            int size = v[i].size();
            int cnt = 0;
            for(int j = 0; j < answers.size(); j++)
            {
                if(answers[j] == v[i][j % size])
                    cnt++;
            }
            
           score.push_back(cnt);
        }
        
        //오름차순...
        int max = -1;
        
        for(int i = 0; i< 3; i++)
        {
            if(max < score[i])
                max = score[i];
       
        }
        
        for(int i = 0; i< 3; i++)
        {
            if(max == score[i])
                answer.push_back(i + 1);
        }
        
        
        return answer;
    }