본문 바로가기

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

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

728x90
반응형

문제 : 크레인 인형뽑기 게임


풀이 방법

스택은 넣은 순서 반대로 꺼내는 특징이 있기 때문에 쓰면 크레인으로 집은 인형들을 관리하기 쉬울 것 같아서 스택을 써봤는데 그냥 벡터로 했어도 문제 없었을 것 같다. 

 

크레인으로 뽑은 인형의 자리는 0으로 채우기만 한다면 가볍게 풀 수 있는 문제이다.


소스 코드

#include <string>
#include <vector>
#include <stack>
using namespace std;

int solution(vector<vector<int>> board, vector<int> moves) {
    int answer = 0;
    stack<int> s;
    for(int & i : moves) {
        for(vector<int> & u : board) {
            if(u[i-1] != 0) {
                if(s.empty() || s.top() != u[i-1]) {
                    s.push(u[i-1]);
                }
                else {
                    s.pop();
                    answer+=2;
                }
                u[i-1] = 0;
                break;
            }
        }
    }
    return answer;
}

 

728x90
반응형