본문 바로가기

프로그래머스/JavaScript

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

 

function solution(board, moves) {
    let answer = 0;
    let count = moves.length; // 움직일 횟수
    let col = board.length; // 현재 board의 col수
    let bascket = []; // 뽑은 인형 쌓는 바구니
    let lastItem = 0; // 바구니의 마지막 인덱스

    for (let i = 0; i < count; i++) {
        let selected = moves[i] - 1; // 선택되어진 열
        let pick = 0; // 뽑은 인형

        // 해당 열에서 가져올 인형 (0은 인형없는 빈칸)
        for (let j = 0; j < col; j++) {
            if (board[j][selected] !== 0) { // 뽑힌 인형 
                pick = board[j][selected];
                lastItem = bascket.length - 1; // 바구니의 맨 위 인형

                if (pick === bascket[lastItem]) { // 뽑힌 인형 = 바구니의 맨 위 인형
                    bascket.pop(); // 바구니 마지막 인형 제거
                    answer += 2; // 점수 추가
                } else {
                    bascket.push(pick); // 바구니 맨 위로 추가
                }
                board[j][selected] = 0; // 선택 된 인형위치는 빈칸
                break; // 해당 루프에서 벗어나기
            }
        }
    }

    return answer;
}