프로그래머스[Level 1] 크레인 인형뽑기 게임

bkboy·2022년 6월 24일
0

문제 : 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을 사용하라고 힌트를 주고있다.

profile
음악하는 개발자

0개의 댓글