카테고리 없음

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

메리짱123 2024. 10. 23. 10:02
반응형
  Stack ArrayDeque
동기화 O X
스레드안전 O X
성능 비교적 느림 비교적 빠름

굳이 Stack을 쓸 필요가 없고 ArrayDeque가 비교적 빠르다 하니 ArrayDeque사용

집게로 뽑으러 갔는데 인형이 없는 경우 stack 접근 안하도록 continue 처리해야함;;

import java.util.*;

class Solution {
    public int solution(int[][] board, int[] moves) {
        int answer = 0;
        Deque<Integer> stack = new ArrayDeque<>();
        for(int move : moves){
            int index = move -1;
            int dollNo = 0;
            //인형 꺼내고 0 넣기
            for(int i=0;i<board.length;i++){
                if(board[i][index] != 0){
                    dollNo = board[i][index];
                    board[i][index] = 0;
                    break;
                }
            }
            if(dollNo == 0 ) continue;
            
            if(stack.isEmpty()){
                stack.push(dollNo);
            }else{
                //마지막에 넣은 것과 같은경우
                if(stack.peek() == dollNo){
                    stack.pop();
                    answer+=2;
                }else{
                    stack.push(dollNo);
                }
            }
            
        }
        
        return answer;
    }
}
반응형