[Programmers][Java] 크레인 인형뽑기 게임

HyeBin, Park·2021년 5월 3일
0

Programmers

목록 보기
10/26
post-thumbnail

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

📒 문제




📒 제한사항


🌻 코드

import java.util.Stack;

public class CraneGame {
    public static int solution(int[][] board, int[] moves) {
        int answer = 0;
        // 바구니는 스택으로 
        Stack<Integer> basket = new Stack<>();
        for(int k = 0;k< moves.length;k++) {
            for(int i = 0; i< board.length;i++){
                if(board[i][moves[k]-1]>0) {
                
                   // basket.size()>=1 이부분을 다시 생각해서 고쳤다. 
                    if(basket.size()>=1 && basket.peek() == board[i][moves[k]-1]) {
                        basket.pop();
                        answer+=2;
                    }
                    else basket.push(board[i][moves[k]-1]);

                    board[i][moves[k]-1] = 0;
                    break;
                }

            }
        }
        return answer;
    }
}

class Main{
    public static void main(String[] args) {
        int [][]b = {{0,0,1,0,0},{0,0,1,0,0},{0,2,1,0,0},{0,2,1,0,0},{0,2,1,0,0}};
        int []m={1,2,3,3,2,3,1};
        System.out.println(CraneGame.solution(b,m));
    }
}

💡 정리하기

👉 basket.size()>=1 다시 고친부분은 바구니에 한개의 인형이 존재할때 다른 중복된 인형이 들어올 경우 터트려져야하는데 이 부분을 생각하지 못해서 헤맸었다.

0개의 댓글