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

윤상일·2022년 7월 17일
0

프로그래머스 Lv.1

목록 보기
11/15
post-thumbnail

문제 설명

게임 화면의 격자의 상태가 담긴 2차원 배열 board와 인형을 집기 위해 크레인을 작동시킨 위치가 담긴 배열 moves가 매개변수로 주어질 때, 크레인을 모두 작동시킨 후 터트려져 사라진 인형의 개수를 return 하도록 solution 함수를 완성해주세요.
자세한 설명은 아래의 링크 참고
https://school.programmers.co.kr/learn/courses/30/lessons/64061

나의 코드

function solution(board, moves) {
    var bucket = []; // 뽑을 인형을 담을 배열
    var answer = 0; // 사라진 인형의 갯수를 count
    
    for(var i=0; i<moves.length; i++){
        for(var j=0; j<board.length; j++){
            
            if(board[j][moves[i]-1] != 0){
                if(bucket[bucket.length-1]===board[j][moves[i]-1]){
                    bucket.pop();
                    answer += 2;
                }
                else{
                    bucket.push(board[j][moves[i]-1]);
                }
                
                board[j][moves[i]-1] = 0;
                break;
            }
        }
     
    }
    
    return answer;
}

1. 문제 풀이

for문을 돌며 moves배열에 주어진 위치에 board배열의 요소가 0인지 아닌지를 판단한다.
만약 0이 아니라면(빼낼 인형이 있다면) bucket배열의 마지막 요소와 현재 뽑은 인형이 같은지를 판단하고
같다면 그 인형을 pop 해주고 answer 변수의값을 +2 해준다,
만약 같지 않다면 그대로 bucket 배열에 넣어주고 board배열에서 인형을 뽑은 자리의 요소를 0으로 초기화해준다.
그리고 내부 for문을 break하고 다음 moves를 실행해준다,
profile
멋있는 개발자를 꿈꾸는 코린이

0개의 댓글