알고리즘

프로그래머스 - 크레인 인형

계양 꿀주먹 2024. 5. 7. 21:15

 

 


 

import java.util.*;

class Solution {
    public int solution(int[][] board, int[] moves) {
        int answer = 0;
        Stack<Integer> stack = new Stack<>(); 
        
        for(int i = 0; i < moves.length; i++) {
            int crane = moves[i] - 1; // 집게 위치
            // 위에서부터 내려오는 것
            for(int j = 0; j < board.length; j++) {
                if(board[j][crane] != 0) {
                    if(stack.size() > 0 && stack.peek() == board[j][crane]) {
                        stack.pop();
                        answer += 2;
                    } else {
                        stack.push(board[j][crane]);
                    }
                    board[j][crane] = 0;
                    break;
                }
            }
        }
        
        return answer;
    }
}

 

스택을 이용하는 문제였습니다.

집게의 현재 위치를 입력받고 인형이 있다면 stack에 넣기 전 같은지 확인하면 되는 문제입니다.