강의로 돌아가기
고은학

9번과 12번만 실패네요 ㅠㅠ

왜일까유.. 반례가 뭘까유..

작성중인 코드―solution.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

vector<int> solution(vector<int> answers) {
    vector<int> answer;
    vector<int> man2(10000,2);
    vector<int> man1(10000);
    vector<int> man3(10000);
    vector<int> man2_R={1,3,4,5};
    vector<int> man3_R={3,1,2,4,5};
    vector<pair<int,int>> score(3);
    score[0].second=1;
    score[1].second=2;
    score[2].second=3;
    for (int i=0;i<1000;i++){
        for(int j=0;j<5;j++){
            man1.insert(man1.begin()+i*5+j,j+1);
            man1.insert(man1.begin()+5000+i*5+j,j+1);
            man2.insert(man2.begin()+(i*5+j)*2+1,man2_R[(i*5+j) % 4]);
            man3.insert(man3.begin()+(i*5+j)*2,man3_R[(i*5+j) % 5]);
            man3.insert(man3.begin()+(i*5+j)*2+1,man3_R[(i*5+j) % 5]);

            }        
    }
    for (int i=0;i<answers.size();i++){
        if(man1[i]==answers[i]) score[0].first++;
        if(man2[i]==answers[i]) score[1].first++;
        if(man3[i]==answers[i]) score[2].first++;
    }
    stable_sort(score.begin(), score.end(),greater<>());
        answer.push_back((*score.begin()).second);
    for (int i=1;i<3;i++){
            if ((score[i]).first==(score[0]).first)
                answer.push_back((score[i].second));
    }
    sort(answer.begin(),answer.end());
    return answer;
}
1 개의 답변
고은학

왠지 다 빵점일때 일것 같네요
응아니야

  • 고은학

    insert 기능의 오해가 있었군요

    고은학―2021.03.30 20:30
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.