https://programmers.co.kr/learn/courses/30/lessons/64061

void pushStack(int val, stack<int>& s, int& answer){
    if(s.empty()){
        s.push(val);
    } else{
        if(s.top() == val) {
            answer += 2;
            s.pop();
        }else {
            s.push(val);
        }
    }
}

int solution(vector<vector<int>> board, vector<int> moves) {
    int answer = 0;
    stack<int> s;
    
    for(int move =0; move < moves.size(); ++move) {
        int moveVal = moves[move] - 1;
        for(int col = 0; col < board.size(); ++col) {
            if(board[col][moveVal] != 0) {
                pushStack(board[col][moveVal], s, answer);
                board[col][moveVal] = 0;
                break;
            }
        }
    }
    return answer;
}