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

박재윤·2021년 1월 27일
0

코테준비

목록 보기
24/25

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/64061?language=javascript

나의 풀이

function solution(board, moves) {
    let answer = 0;
    
    const boardStacks = Array.from({length: board.length}, () => []);
    const basketStack = [];
    
    for (let i = board.length-1; i > -1 ; i-- ) {
        for (let j = 0; j < board.length; j++) {
            if (board[i][j] === 0) continue;
            
            boardStacks[j].push(board[i][j]);
        }
    }
    
    for (const move of moves) {
        if (boardStacks[move-1].length === 0) continue;
        
        const currItem = boardStacks[move-1].pop();
        
        if (basketStack[basketStack.length-1] === currItem) {
            basketStack.pop();
            answer += 2;
        } else {
            basketStack.push(currItem);
        }
        
    }
    
    return answer;
}

풀이 회고

문제 자체는 크게 어렵지 않았던 것 같다. board를 스택의 배열로 바꿔준 후에 moves의 숫자에 해당하는 스택에서 하나씩 pop을 하면서 바구니에서 확인하는 형식으로 진행했다.

풀이가 끝났을 때 틀리는 부분이 있었는데 board의 길이가 5로 고정인 줄 알아서 런타임 에러가 계속 발생하는 문제가 있었다. 문제를 다시 읽고 해결을 했다.

0개의 댓글

관련 채용 정보