Make Unreal REAL.
article thumbnail
Level 1. 크레인 인형뽑기 게임

 

 

큐의 배열을 이용해 인형 뽑기 머신을 클래스로 추상화시켜 해결했다.

 

어려운 문제는 아니었고 카카오에서 내는 시뮬레이션 문제 중에 재밌는 것들이 많은 것 같다.

 

#include <iostream>
#include <vector>
#include <queue>
#include <stack>

using namespace std;

class ClawMachine
{
private:
    vector<queue<int>> board;

public:
    ClawMachine(vector<vector<int>>& board) : board(vector<queue<int>>(board.size()))
    {
        for (vector<int> row : board)
            for (int i = 0; i < row.size(); ++i)
                if (row[i]) this->board[i].emplace(row[i]);
    }

    int pull(int move)
    {
        queue<int>& que = board[move - 1];

        if (que.empty())
        {
            return -1;
        }
        else
        {
            int doll = que.front(); que.pop();

            return doll;
        }
    }
};

int solution(vector<vector<int>> board, vector<int> moves)
{
    int answer = 0;
    stack<int> dolls;
    ClawMachine clawMachine(board);

    for (int move : moves)
    {
        int doll = clawMachine.pull(move);

        if (!dolls.empty() && doll == dolls.top())
            dolls.pop(), answer += 2;
        else if (doll != -1)
            dolls.emplace(doll);
    }

    return answer;
}

'자료구조 & 알고리즘 > 프로그래머스' 카테고리의 다른 글

Level 1. 부족한 금액 계산하기  (0) 2023.03.06
Level 1. 신규 아이디 추천  (0) 2023.03.05
Level 1. 키패드 누르기  (0) 2023.03.03
Level 1. [1차] 다트 게임  (0) 2023.03.02
Level 1. 체육복  (0) 2023.03.01
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그