문제 : https://programmers.co.kr/learn/courses/30/lessons/64061
문제가 길어서 코드만 첨부하려고 한다.
function solution(board, moves) {
let answer = 0;
let stack = [];
// pos는 열번호
moves.forEach((pos) => {
for (let i = 0; i < board.length; i++) {
if (board[i][pos - 1] !== 0) {
let tmp = board[i][pos - 1];
// 뽑아오기, 0으로 갱신
board[i][pos - 1] = 0;
// 뺴온것과 stack의 마지막 요소가 같으면
if (tmp == stack[stack.length - 1]) {
// 터짐
stack.pop();
answer += 2;
} else {
// 그게 아니라면 들어감
stack.push(tmp);
}
// 인형은 한번에 한개씩만 빼기위해서 break
break;
}
}
});
return answer;
}
stack의 성질을 이용하여 풀었다. 문제 그림부터 stack을 사용하라고 힌트를 주고있다.