나의 풀이

    function solution(board, moves) {
            let answer = 0;
            let stack = [];
            let garo = a.length;

            // if (board)
            //     return answer;
            for (let i = 0; i < garo; i++) {
                for (let j = 0; j < garo; j++) {
                    //
                    if(board[i])
                    stack.push()
                    if (board[i][j] === b[i])
                        answer++;
                    else{
                           [i][j]
                    }
                
                }   
            }
        }
        
         let a = [[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]];

        let b = [1, 5, 3, 5, 1, 2, 1, 4];
        console.log(solution(a, b));

모범 답안

 function solution(board, moves){
                let answer=0;
                let stack=[];
                moves.forEach(pos => {
                    for(let i=0; i<board.length; i++){
                        if(board[i][pos-1]!==0){
                            let tmp=board[i][pos-1];
                            board[i][pos-1]=0;
                            if(tmp===stack[stack.length-1]){
                                stack.pop();
                                answer+=2;
                            }
                            else stack.push(tmp);
                            break;
                        }
                    }
                });
                                
                return answer;
            }
            
            let a=[[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]];

            let b=[1, 5, 3, 5, 1, 2, 1, 4];
            console.log(solution(a, b));

 

 

핵심 포인트

1) forEcah 용도 잘 기억하기, 안의요소가 b원소 하나하나씩 돈다.

2) 2개씩 사라지니까 answer +2 해야한다는점

3) 꺼내고 0 으로 바꾸기 즉, tmp로 값저장후 -> 0으로 치환 ( 순서바뀌면 안됨)  

4) 마지막에 break를 해줘야 한곳을 다돌지않는다

+ Recent posts