[JS] 프로그래머스 코딩테스트 - 크레인 인형뽑기 게임

권이온·2025년 8월 24일

📚 문제

크레인 인형뽑기 게임

📣 풀이

  • 시도한 풀이

    function solution(board, moves) {
        let answer = 0;
        let stack = [];
    
        for (let i = 0; i < moves.length; i++) {
            let doll = 0;
            let idx = moves[i] - 1;
            for (let j = 0; j < board.length; j++) {
                if (board[j][idx] === 0) continue;
                doll = board[j][idx];
                if (stack.length === 0) stack.push(doll);
                else {
                    let dollInStack = stack.pop();
                    if (doll === dollInStack) answer += 2;
                    else {
                        stack.push(dollInStack);
                        stack.push(doll);
                    }
                }
                board[j][idx] = 0;
                break;
            }
        }
    
        return answer;
    }

💫코드 리뷰 & 반성

[어려웠던 점]
처음에 배열 위치를 거꾸로 봤음.
다행히 문제 이해하고 나서는 금방 풀었는데
따로 행렬을 거꾸로 (가로, 세로) 바꾸진 않았고.
그냥 for 문이랑 if 문으로 해결했는데 뭔가 지저분한 느낌.

[새롭게 알게된 점]
책에서 코드를 봤는데 일단 board도 스택으로 관리하고
이거는 나도 깜빡한 건데 굳이 pop을 한 다음에 비교 안 해도 됨.
그냥 맨 뒤에 꺼 체크하면 되는 거다.
책에서는 2차원 배열 board를 진짜 인형뽑기처럼 변형해버림.

참고

코딩 테스트 합격자 되기 자바스크립트 - 이선협, 박경록 저

profile
인생은 아름다워

0개의 댓글