-> 자세한 내용 보러가기
import java.util.*;
class Solution {
public int solution(int[][] board, int[] moves) {
int answer = 0;
int N = board.length;
Stack<Integer> stack = new Stack<>();
for(int move : moves){
move--; //인형의 위치는 0부터 시작함
for(int idx = 0; idx < N; idx++){
//인형의 위치
int doll = board[idx][move];
//바구니에 인형이 없거나 꺼냈을 때 다른 인형이면, 바구니에 쌓는다
if(doll != 0){ //크레인에서 인형을 꺼내야함
if(stack.isEmpty() || stack.peek() != doll){
stack.push(doll);
}else{
//같다면 스택에서 없애고 answer +=2
stack.pop();
answer += 2;
}
//해당 인형 위치에는 더이상 인형이 없다
board[idx][move] = 0;
break;
}
}
}
return answer;
}
}