[Programmers] : 크레인 인형 뽑기 - Java

🔗 문제 

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

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4

programmers.co.kr

 

💻 코드

package org.kyhslam.programmers;
import java.util.Stack;

public class day_1229_01 {

    public static void main(String[] args) {

        int[][] board = {
                {0, 0, 0, 0, 0},
                {0, 0, 1, 0, 3},
                {0, 2, 5, 0, 1},
                {4, 2, 4, 4, 2},
                {3, 5, 1, 3, 1}
        };

        int move[] = {1, 5, 3, 5, 1, 2, 1, 4};

        //System.out.println(board.length);
        solution(board, move);
    }


    public static int solution(int[][] board, int[] moves) {
        int answer = 0;
        Stack<Integer> stack = new Stack<>();


        for (int i = 0; i < moves.length; i++) {
            int index = moves[i];
            System.out.println("index == " + index);
            int rowSize = board.length;
            for (int a = 0; a < rowSize; a++) {

                if (board[a][index - 1] != 0) {
                    int curValue = board[a][index - 1]; // 현재값 꺼내고
                    board[a][index - 1] = 0; //꺼낸 위치 0으로 초기화

                    if (stack.size() != 0) {
                        int beforeValue = stack.peek();
                        //만약에 같으면 두개 지워준다
                        if (curValue == beforeValue) {
                            stack.pop();
                            answer += 2; //개수 2개 증가
                        } else {
                            stack.push(curValue);
                        }
                    } else {
                        stack.push(curValue);
                    }
                    break;
                }
            }
            System.out.println("stack = " + stack);
        }

        System.out.println("answer = " + answer);
        return answer;
    }
}

댓글

Designed by JB FACTORY