본문 바로가기
코딩테스트 문제집/Programmers(Lv1)

[Programmers] Lv1: 크레인 인형뽑기 게임

by cogito30 2025. 2. 11.
반응형

문제

- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/64061?language=java

 

풀이

더보기
더보기
import java.util.Stack;

class Solution {
    public int solution(int[][] board, int[] moves) {

        Stack<Integer>[] lanes = new Stack[board.length];
        for (int i = 0; i < lanes.length; ++i) {
            lanes[i] = new Stack<>();
        }
        
        for (int i = board.length - 1; i >= 0; --i) {
            for (int j = 0; j < board[i].length; ++j) {
                if (board[i][j] > 0) {
                    lanes[j].push(board[i][j]);
                }
            }
        }
        
        Stack<Integer> bucket = new Stack<>();
        
        int answer = 0;
        
        for (int move: moves) {
            if (!lanes[move - 1].isEmpty()) {
                int doll = lanes[move - 1].pop();

                if (!bucket.isEmpty() && bucket.peek() == doll) {
                    bucket.pop();
                    answer += 2;
                }
                else {
                    bucket.push(doll);
                }
            }
        }
        return answer;
    }
}

 

반응형