본문 바로가기

개발/알고리즘 & 자료구조

[프로그래머스][카카오] 크레인 인형뽑기 게임 (2019 카카오 개발자 겨울 인턴십)

반응형

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>

using namespace std;

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

    for(int mi=0;mi<moves.size();mi++) {
        int row=moves[mi]-1;

        for(int bi=0;bi<boardSize;bi++) {
            if(board[bi][row]>0) {
                if(!st.empty() && st.top()==board[bi][row]) {
                    st.pop();
                    answer+=2;
                } else {
                    st.push(board[bi][row]);
                }
                board[bi][row]=0;
                break;
            }
        }
    }

    return answer;
}

 

특별한 알고리즘이 필요없는 시뮬레이션 문제다.

moves[]순서대로 인형뽑기를 하여 인형을 터트리면 된다.

 

이런 문제의 경우 바로 코드를 작성하기 보다는

예외처리할만한 사항들을 잘 정리해두고 시작해야

사소한 실수를 줄일 수 있다.

 

반응형