본문 바로가기
코딩테스트

[카카오 - 2019 카카오 개발자 겨울 인턴십]크레인 인형뽑기 게임

by snowballchoi 2022. 12. 23.

게임 화면의 격자의 상태가 담긴 2차원 배열 board와 인형을 집기 위해 크레인을 작동시킨 위치가 담긴 배열 moves가 매개변수로 주어질 때, 크레인을 모두 작동시킨 후 터트려져 사라진 인형의 개수를 return 하도록 solution 함수를 완성해주세요.

 

 


import java.util.*;

class Solution {
    public int solution(int[][] board, int[] moves) {
        int answer = 0;
        
        int boardSize = board.length;
        
        Stack<Integer> stack = new Stack<>();
        
        for (int move: moves) { // move : index+1
            for (int i=0; i<boardSize; i++) {
                if (board[i][move-1]>0) { // 인형이 있으면
                    if (stack.isEmpty()) {
                        stack.push(board[i][move-1]); // stack에 넣음
                    } else {
                        if (stack.peek()==board[i][move-1]) {
                            stack.pop(); // 인형 중복이니까 제거
                            answer += 2;
                        } else {
                            stack.push(board[i][move-1]); // stack에 넣음
                        }
                    }
                    board[i][move-1] = 0; // 0으로 초기화
                    break;
                }
            }
        }
        
        
        return answer; // 터트려져 사라진 인형
    }
}

댓글