[프로그래머스] 코딩테스트연습 > 크레인 인형뽑기 게임
알고리즘/javascript

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

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[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

 

function solution(board, moves) {
    let answer = 0;
    //5*5에서 board[4] = 1층 , board[0] = 5층
    let basket = []
    //j돌면서 인형 잡았으면 다음 move로 넘어가야 하므로 stop 해줄 요소 추가
    let lock = 0
    
    for(let i=0; i<moves.length; i++){
        for(let j=0; j<board.length; j++){
            const target = board[j][moves[i]-1]
            if(target !== 0 && lock === i){
                lock++; // 인형 뽑혔으므로 다음 move 일 때 작동하기
                
                if(target === basket[basket.length-1]){
                    basket.pop()
                    answer += 2
                } else {
                    basket.push(target)
                }
                
                board[j][moves[i]-1] = 0
            }
        }
    }
    return answer
}
  • board 데이터가 층별로 되어있어서 column 별로 되어있으면 풀기 풀기가 훨씬 편할 것 같아서 변환하려 했는데 그것도 일이라서 그냥 풀었다.
  • lock 을 쓴 부분이 있는데 안쓰고 더 깔끔하게 할 수 있을 것 같다.
반응형