본문 바로가기
프로그래밍/알고리즘

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

by lee365 2020. 12. 22.
반응형

💁‍♀️ 링크

programmers.co.kr/learn/courses/30/lessons/64061

 

📃 문제 

 

정사각 격자안에 인형들이 차곡차곡 쌓여있다.

크레인을 좌우로 움직여 멈춘위치에서 가장 위에 있는 인형을 집어 올린다.

집어 올린 인형은 바구니에 쌓이게 되는데, 가장 아래부터 위로 순서대로 쌓인다. (Stack구조)

같은 모양의 인형 두개가 바구니에 연속해서 쌓이게 되면 그 인형 두 개는 바구니에서 뺀다.

크레인을 모두 동작 후 바구니에서 뺀 (사라진) 인형의 갯수는?

 

🐾 문제풀이

 

 

 

💻 코드

import java.util.Stack;
class Solution {
    public int solution(int[][] board, int[] moves) {
        int answer = 0;
        Stack<Integer> stack = new Stack<>();
        
        for(int i=0; i< moves.length; i++){
            int m = moves[i]-1;
            for(int j=0; j<board.length; j++){
                if(board[j][m] != 0){
                    if(stack.empty()){
                        stack.push(board[j][m]);
                    }else{
                        if(stack.peek() == board[j][m]){
                            stack.pop();
                            answer += 2;
                        }else{ 
                            stack.push(board[j][m]);
                        }
                    }
                    board[j][m] = 0;
                    break;
                }
            }
        }
        return answer;
    }
}
반응형