본문 바로가기

Programming/Programmers

[프로그래머스/C++] 크레인 인형뽑기 게임(스택)

제일 쉬운 문제로 stack 자료구조를 쓸 줄 아는가를 묻는 문제였다.

 

#include <iostream>
#include <string>
#include <vector>
#include <stack>

using namespace std;

int solution(vector<vector<int>> board, vector<int> moves) {
    stack<int> s;
    s.push(0);
    int answer = 0;
    
    int map_size = board[0].size();
    for(int i=0;i<moves.size();i++){
        
        int temp = moves[i]-1;

        for(int j=0;j<map_size;j++){
            if(board[j][temp]!=0){
                //cout << board[j][temp] <<endl;
                if(s.top()!=board[j][temp]) s.push(board[j][temp]);
                else {
                    
                    cout << board[j][temp] <<endl;
                    answer+=2;
                    s.pop();
                }
                board[j][temp]=0;
                break;
            }
        }
        
        
        
    }
 
    return answer;
}