프로그래머스에서 항해가 선정한 2번쨰 챕터문제를풀어보았다.
stack에관한 문제가나왔는데 문제예시 이미지떄문에 그런지 예전 인프런 알고리즘 강의에서 풀었던 문제가 나와 쫌 아쉬웠다.
그렇다고 쉽게 풀린건아니였으니.. 문제는 저 맨 밑의 break문을 설정할 생각을 하지못해 계속 에러가 발생했었다.. 두번쨰 for문에서 해당 인형을 뽑은후 뽑은인형의 자리를 빈값으로 표시해주고 for문을 이탈해야되는데 계속해서 뽑는 상황이 발생했어서 에러가 발생했었다. 이 문제를 찾아보기위해 각각의 상황에대해서 콘솔로 확인을해봤는데 확실히 프로그래머스에선 answer값을통해서밖에 콘솔을 대체할수가 없어 일일이 확인하는데 시간이 오래걸렸었다.
function solution(board, moves) {
let answer = 0;
let stack = [];
for(let i = 0;i< moves.length; i++) {
for(let j = 0; j< board.length; j++) {
if(board[j][moves[i]-1] === 0) {
continue;
} else {
if(board[j][moves[i]-1] === stack[stack.length-1] ) {
stack.pop();
answer = answer +2;
}else {
stack.push(board[j][moves[i]-1]);
};
board[j][moves[i]-1] = 0;
break;
}
}
}
return answer;
}