개발야옹

[ 시뮬레이션 : lv1 ] : 크레인 인형뽑기 게임 (_JS) 본문

Algorithm\CodingTest/Programmers

[ 시뮬레이션 : lv1 ] : 크레인 인형뽑기 게임 (_JS)

kitez 2022. 1. 17. 20:57

프로그래머스 - 문자열 lv1

크레인 인형뽑기 게임 (_JS)

 

문제 링크

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

 

제한 사항

  • board 배열은 2차원 배열로 크기는 "5 x 5" 이상 "30 x 30" 이하입니다.
  • board의 각 칸에는 0 이상 100 이하인 정수가 담겨있습니다.
    • 0은 빈 칸을 나타냅니다.
    • 1 ~ 100의 각 숫자는 각기 다른 인형의 모양을 의미하며 같은 숫자는 같은 모양의 인형을 나타냅니다.
  • moves 배열의 크기는 1 이상 1,000 이하입니다.
  • moves 배열 각 원소들의 값은 1 이상이며 board 배열의 가로 크기 이하인 자연수입니다.
  •  

입출력 예


코드

2022.01.17.

function solution(board, moves) {
    var answer = 0;

    let stack = [];

    moves.forEach( move => {
        let flag = true;
        let stackLen = stack.length;
        stack = SameChecking(stack);

        if( stackLen !== stack.length ){
            answer += 2;
        }

       board.forEach( x => {
           if(flag){
               if( x[move-1] !== 0 ){
                   stack.push(x[move-1]);
                   x[move-1] = 0;
                   flag = false;
               }
           }
           else{
               return false;
           }
       });
    });

    return answer;
}

function SameChecking(stack){
    let prevItem = 0;
    stack.forEach( ( item, index ) => {
        if( prevItem === item ){
            stack.splice(index-1, 2);
            return stack;
        }

        prevItem = item;

    });

    return stack;
}

 

728x90