Study Record

[프로그래머스] Level1 - 크레인 인형뽑기 게임 <스택> 본문

알고리즘

[프로그래머스] Level1 - 크레인 인형뽑기 게임 <스택>

초코초코초코 2021. 12. 2. 13:03
728x90
#include <string>
#include <vector>
#include <stack>

using namespace std;

int solution(vector<vector<int>> board, vector<int> moves) {
    int answer = 0;
    stack<int> dollStack;
    for(int i=0; i< moves.size(); i++){
        int index = moves[i] - 1;
        int doll = 0;
        for(int k=0; k<board.size(); k++){
            if(board[k][index] != 0){
                doll = board[k][index];
                board[k][index] = 0;
                break;
            }
        }
        if(doll != 0){
        // 스택의 가장 위에 값과 집을 인형이 같으면 파괴된다.
            if(!dollStack.empty() && dollStack.top() == doll){
                dollStack.pop();
                answer += 2;
            } else {
                dollStack.push(doll);
            }    
        }
    }
    
    return answer;
}
728x90