[JS][프로그래머스LV1]크레인 인형 뽑기
Algorithm/Programmers

[JS][프로그래머스LV1]크레인 인형 뽑기

문제 번호

 

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

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

 

 

알고리즘 분류

 

 

문제 풀이

 우선 주어진 모든 움직임을 파악하기위해서 moves.length 만큼 for문을 사용하였다.

이후 moves 에서 주어진 열을 탐색하면서 인형이 발견되면 해당 인형을 집어서 result 라는 배열에 넣는다.

이때 result 의 최상단이 현재 집은 인형과 같은 인형이라면 result 배열을 pop 시켜주고 answer 변수에 제거한 인형의 수를 추가한다.

 

전체코드

function solution(board, moves) {
    var answer = 0;
    let result = [];
    
    // 모든 움직임 검색하기.
    for(let i=0; i<moves.length; i++){
        let col = moves[i]-1;   
       
        for(let j=0; j<board.length; j++){            
            // 인형을 발견하면 집는다.
            if(board[j][col] !== 0){
                if(result[(result.length)-1] === board[j][col]){
                    result.pop();
                    answer += 2;
                }
                else{
                    result.push(board[j][col]);
                }
                
                board[j][col] = 0;                
                break;
            }
        }
    }
    
    return answer;
}

특이사항