Coding Test - cpp/Stack, Queue
[프로그래머스 lv 1 ] - 크레인 인형뽑기 게임
에드윈H
2021. 4. 20. 12:46
programmers.co.kr/learn/courses/30/lessons/64061
#include <string>
#include <vector>
#include <stack>
using namespace std;
int solution(vector<vector<int>> board, vector<int> moves) {
int answer = 0;
stack<int> st;
for(int j=0;j<moves.size();j++) //뽑는 순서대로 진행
{
int curCrain=moves[j]; //뽑아야할 크레인 위치
int num=-1;
for(int i=0;i<board[curCrain-1].size();i++) //크레인위치에서 제일 위에 있는 번호 뽑기
{
if(board[i][curCrain-1]!=0) //0이 아니라면 뽑아야 할 수
{
num=board[i][curCrain-1];
board[i][curCrain - 1] = 0;
// find=true;
break;
}
}
if(num!=-1)
{
if(!st.empty())
{
if(st.top()==num)
{
st.pop();
answer+=2;
}else
{
st.push(num);
}
}else
{
st.push(num);
}
}
}
return answer;
}