본문 바로가기
카테고리 없음

[알고리즘] 크레인 인형뽑기 게임

by keel_im 2021. 2. 16.
반응형

포인트

1. 크레인 인형 뽑기: 적절한 인덱스와 스택을 잘 이해한다면 확실히 풀만한 문제였던 것 같다. 하지만 나는 문제를 이해하지 못했던게 몇 번인지 어휴;;;;

🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. 

c++/cpp

#include <bits/stdc++.h>

using namespace std;

int solution(vector<vector<int>> board, vector<int> moves) {
    int answer = 0;
    vector<int> stack;
    int n = board.size();

    for(auto move: moves){
        int idx = move-1;
        for(int i=0; i<n; i++){
            if(board[i][idx]!=0){
                stack.push_back(board[i][idx]);
                board[i][idx] = 0;
                break;
            }
        }
        
        if(stack.empty() || stack.size()==1) continue;
        else if (stack[stack.size()-1] == stack[stack.size()-2]){
            stack.erase(stack.end()-1);
            stack.erase(stack.end()-1);
            answer+=2;
        } 
    }
    return answer;
}

python

def solution(board, moves):
    answer = 0
    n = len(board)
    stack =[]
    for move in moves:
        idx = move - 1
        for i in range(n):
            if board[i][idx] != 0:
                stack.append(board[i][idx])
                board[i][idx] = 0
                break
        
        if len(stack) == 0 or len(stack) ==1:
            continue
        elif stack[-2] == stack[-1]:
            stack.pop(-1)
            stack.pop(-1)
            answer+=2
        else:
            continue

    return answer
반응형

댓글