개발 공부/알고리즘 문제 풀이

[프로그래머스] 크레인 인형뽑기 게임 (JavaScript)

종범2 2020. 6. 4. 21:36

문제

프로그래머스 2019 카카오 개발자 겨울 인턴십 크레인 인형뽑기 게임

https://programmers.co.kr/learn/courses/30/lessons/64061

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4

programmers.co.kr

언어

바스크립트(JavaScript)

 

접근방법

  1. 주어진 input에 따라 인형을 뽑는다. 격자에서 위에서 차례대로 0이 나오지 않을 때까지 찾는다. 0이 아닌 숫자가 나오면 인형을 뽑는다.
  2. 뽑은 인형이 바구니에 있는 인형과 같으면 둘다 터트린다.
  3. 뽑은 인형이 바구니에 있는 인형과 다르면 바구니에 넣는다.

코드

function solution(board, moves) {
    let result = 0;
    let size = board.length;
    let num = 0;
    let pocket = [];
    moves.forEach(move=>{
        let cnt = 0;
        while(true){
            
            if (board[cnt][move-1] !== 0){
                // 바구니에 인형이 있는데 잡은 인형과 같으면 터트린다
                if (pocket.length !== 0 && pocket[pocket.length-1] === board[cnt][move-1]){
                    pocket.pop();
                    result += 2;
                }else{
                // 그렇지 않다면 잡아서 옮긴다
                    pocket.push(board[cnt][move-1]);
                }
                board[cnt][move-1] = 0;
                break;
            }
            cnt ++;
            if(cnt === size)
                break;
        }
    })
    return result;
}

복기

  1. 어렵지 않게 풀었다.