5월 31일 알고리즘(크레인 인형 뽑기)

이정민·2022년 5월 31일
0

알고리즘

목록 보기
15/23

출처: https://programmers.co.kr/learn/courses/30/lessons/64061

나의 풀이

function solution(board, moves) {

    let count =0;
    let bucket = [];

    for(let i=0;i<moves.length;i++){
        let current = moves[i]-1 // [0,4,2,4,0,1,0,3]
        for(let j=0;j<board.length;j++){
            if(board[j][current]!=0){
                if(bucket[bucket.length-1]===board[j][current]){ //마지막 인형과 뽑은 인형이 같다면
                    bucket.pop();// 인형을 꺼내고
                    count+=2; //인형 두개를 더한다. 
                }
                else{ //마지막 인형과 뽑은 인형이 같지 않다면
                    bucket.push(board[j][current]) //인형을 바구니에 넣어준다. 
                }
                board[j][current] = 0;
                break;
            }
        }
    }
    return count
}

일단 여태까지 풀었던 1단계 문제 중 가장 어려웠다.. 문제가 이렇게 줄글이었던것도 처음이고 문제에 대한 이해가 필요한 문제였다. 나의 경우 배열이 해당되는 그림을 다른것으로 착각해서 그거 알아채는데만 한시간이 걸렸다... 주의를 기울이지 않고서는 풀 수 없는 문제였다.

0개의 댓글