본문 바로가기
Beakjoon&프로그래머스/Java

[프로그래머스/Java] 크레인 인형뽑기 게임

by 현장 2026. 3. 15.

-Code

import java.util.*;

class Solution {
    public int solution(int[][] board, int[] moves) {
        int size = board.length;
        // 뽑은 인형을 담을 덱
        Deque<Integer> basket = new ArrayDeque<>();
        int answer = 0;
        for (int move : moves) {
            for(int i = 0; i < size; i++) {
                // 인형이 있는 경우
                if (board[i][move - 1] != 0) {
                    // 바구나가 안비어있고 맨 위의 인형과 같은 경우
                    if(!basket.isEmpty() && basket.peekLast() == board[i][move - 1]) {
                        // 인형 제거 및 사라진 인형 2개 추가
                        basket.pollLast();
                        answer += 2;
                    } else {
                        // 바구니가 비었거나 맨 위 인형과 다른 경우 쌓음
                        basket.addLast(board[i][move - 1]);
                    }
                    // 인형을 뽑았으므로 빈 공간으로 변경
                    board[i][move - 1] = 0;
                    break;
                }
            }
        }
        return answer;
    }
}