알고리즘
프로그래머스 - 크레인 인형
계양 꿀주먹
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에 넣기 전 같은지 확인하면 되는 문제입니다.