Yet Never Lose Faith

- Good to Great , Jim Collins

How To Preprocess Image Data 자세히보기

Algorithm

Programmers Level1. 크레인 인형뽑기 게임 (java)

Kellyyyy 2021. 4. 19. 06:52

접근 방법

  • 문제에서 구현하라는 대로 하면 된다.
  • 인형이 터지는지 판단하는 부분에서는 스택/리스트의 가장 마지막 원소만 비교해주면 된다.

소스 코드 - ArrayList 사용

import java.util.ArrayList;
class Solution {
    public int solution(int[][] board, int[] moves) {
        int answer = 0;
        int n = board.length;
        int m = moves.length;

        ArrayList<Integer> basket = new ArrayList<>();
        basket.add(0);
        for (int i = 0; i < m; i++) {
            int col = moves[i];
            int row = 0;
            while (row < n && board[row][col - 1] == 0) {
                row += 1;
            }
            if (row < n) {
                basket.add(board[row][col - 1]);
                board[row][col - 1] = 0;

                int idx = basket.size()-1;
				if (basket.get(idx) == basket.get(idx - 1)) {
                    answer += 2;
                    basket.remove(idx);
                    basket.remove(idx - 1);
                }
            }
        }
        return answer;
    }
}

소스 코드 - Stack 사용

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

출처

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