2019クレーン抜去型

3850 ワード

何番ですか。

  • 21年10月06日
  • ポリシー

  • 最初は2次元ベクトルで作られていて、黒板を手に入れたいと思っていました.
  • しかし私は考えて、インデックスの昇順で行って、

  • 1番を見ると緑の友達の上に空気の音がします
    2番を見ると上が
    あります.
    しかし、取締役会と比べると.

    0番インデックスのパッケージが入ってきて、
    1番インデックスのパッケージが入ってきて、
    2番インデックスのパッケージが入ってきて、
    3番インデックスのパッケージが入ってきて、
    4番インデックスのパッケージが入ってきて、
    順番に入る.
    このように入ってくると、この部分をもっと考えなければなりません.

    解決策


  • キューを作成し、最初に入ったインデックスを挿入します.
    後で入れるときれいなコンテナが作れると思いますが、

  • だからキューを並べて行います.
  • 質問です。



    :frontを抜く前に例外処理を行います.
    問題の中でこのような文を見た.この記述コードを参照してください.

    ソースコード

    #include <string>
    #include <vector>
    #include <queue>
    #include <stack>
    using namespace std;
    
    //같은 모양의 인형이 쌓이면 두 인형은 바구니에서 사라진다.
    //인형이 없는 번호를 집어도 아무런 일이 안일어난다.
    //바구니는 모든 인형 들어갈만큼 크다.
    
    //  0번인덱스  0 0 0 0 0 
    //  1번인덱스  0 0 1 0 3
    //  2번인덱스  0 2 5 0 1
    //  3번인덱스  4 2 4 4 2
    //  4번인덱스  3 5 1 3 1
    
    //move : 1,5,3,5,1,2,1,4
    //move의 마지막까지 진행했을때 사라진 인형의 갯수는?
    
    int solution(vector<vector<int>> board, vector<int> moves) {
        int answer = 0;
        
        int size = board.size();
        queue<int>q[size];
        
        for(int i = 0; i < board.size(); i++)
        {
            for(int j = 0; j < board[0].size(); j++)
            {
                if(board[i][j] != 0)
                    q[j].push(board[i][j]);
            }
        }
        
        //  0번인덱스  0 0 0 0 0 
        //  1번인덱스  0 0 1 0 3
        //  2번인덱스  0 2 5 0 1
        //  3번인덱스  4 2 4 4 2
        //  4번인덱스  3 5 1 3 1
        
        stack<int>st;
        //move의 마지막까지 진행했을때 사라진 인형의 갯수는?
        for(int i = 0; i < moves.size(); i++)
        {
            //동일한 인형 두개가 맞닿으면 같이 사라지고 이때 cnt+= 2;
            int num = moves[i] - 1;
            
            if(q[num].empty())
                continue;
            int data = q[num].front();
            q[num].pop();
            
            if(!st.empty())
            {
                if(st.top() == data)
                {
                    answer += 2;
                    st.pop();
                }
                else
                {
                    st.push(data);
                }
            }
            else
            {
                st.push(data);
            }
            
           
        }
    
        
        return answer;
    }

    完了!