와이유스토리

[스택] 프로그래머스 크레인 인형 뽑기 게임 C++ 본문

코딩테스트/구현|기타

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

유(YOO) 2021. 12. 31. 11:30

※ 문제

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

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4

programmers.co.kr

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

using namespace std;

int solution(vector<vector<int>> board, vector<int> moves) {
    int answer = 0;
    stack<int> st;
    
    for(int i=0; i<moves.size(); i++) {
        for(int j=0; j<board.size(); j++) { // 위에서부터 뽑음 
            if (board[j][moves[i]-1]!=0) {
                cout << board[j][moves[i]-1];
                if (!st.empty()) {
                    if (st.top()==board[j][moves[i]-1]) {
                        st.pop();
                        answer+=2;
                    }
                    else {
                        st.push(board[j][moves[i]-1]);
                    }
                }
                else {
                    st.push(board[j][moves[i]-1]);
                }
                
                board[j][moves[i]-1] = 0;  // 보드 바꿔주어야 함
                break;
            }
        }
    }
    
    return answer;
}

 

Comments