기억보다는 기록을 해볼까

C++ 공부 13일차 (1966, 2805, 1929) 본문

백준으로 C++ 공부하기

C++ 공부 13일차 (1966, 2805, 1929)

옥상에서 2021. 11. 4. 20:19
728x90

오늘 공부한 백준

1966, 2805, 1929

 

1966

큐는 push, pop, front

벡터는 push_back

    while(num--){   //num번 반복
        queue<pair<int, int>> q;
        vector<int> v;
        int n, m;
        cin >> n >> m;
        for(int i = 0; i < n; i++){
            int input;
            cin >> input;
            v.push_back(input);
            q.push({i, input});
        }

        sort(v.begin(), v.end(), compare);

        int cnt = 0;
        int i = 0;

        while(!q.empty()){
            int a = q.front().first;
            int b = q.front().second;
            if(v[i] == q.front().second){
                q.pop();
                ++cnt;
                i++;
                if(a == m){
                    cout << cnt << "\n";
                    break;
                }
            }
            else{
                q.pop();
                q.push({a,b});
            }

        }
    }

 

sort로 역정렬

 

bool compare(int i, int j){
    return j < i;
}

sort(v.begin(), v.end(), compare);

 

함수로 빼서 구하면 왜 안되고 main 함수 내에서 돌리면 돌아갈까

728x90
Comments