bdfgdfg

[레벨 1] 크레인 인형뽑기 본문

코딩테스트/프로그래머스

[레벨 1] 크레인 인형뽑기

marmelo12 2021. 10. 29. 12:02
반응형
#include <string>
#include <vector>
#include <stack>
using namespace std;

int solution(vector<vector<int>> board, vector<int> moves) {
    int answer = 0;
    stack<int> s;
    //N*N크기
    int boardSize = board.size();
    int len = moves.size();
    int firstIndex, i, j;
    for (i = 0; i < len; ++i) // 이건 맞음.
    {
        int x = moves[i] - 1; // x값은 고정 y값만 이동
        for (j = 0; j < boardSize; ++j)
        {
            if (board[j][x] != 0)
            {
                if (!s.empty())
                {
                    if (s.top() == board[j][x])
                    {
                        s.pop();
                        answer += 2;
                    }
                    else
                        s.push(board[j][x]);
                }
                else
                    s.push(board[j][x]);

                board[j][x] = 0;
                break;
            }
        }
    }
    return answer;
}

 

스택구조를 이용해 인형 체크.

moves의 멤버는 board의 열(고정). 움직여야하는것은 행. 처음 숫자를 만나면 바로 스택확인(삽입 및 pop)

반응형
Comments