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

bepyan·2021년 5월 7일
1

알고리즘

목록 보기
14/16

문제링크

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

코드

  1. 각 인덱스별로 인형이 쌓이는 자료구조 변경
  2. moves에 따라 뽑기
    • 빈 배열을 pop할 땐 undifined를 반환한다.
    • JS특성상 배열 끝 데이터 접근하기 귀찮아서 거꾸로 된 stack을 사용했다.
  3. 사라질 때 2개의 인형씩 사라지기에 answer += 2
function solution(board, moves) {
    var answer = 0;
    const st = [];
    const map = board.map(_ => []);
    board.forEach(b => {
        b.forEach((v, i) => {
            if (v !== 0)
                map[i].unshift(v)
        });
    })

    moves.forEach(m => {
        const peek = map[m - 1].pop();
        if (peek === undefined)
            return;

        if (peek === st[0]) {
            st.shift();
            answer += 2;
        }
        else
            st.unshift(peek);
    })
    return answer;
}
profile
쿠키 공장 이전 중 🚛 쿠키 나누는 것을 좋아해요.

0개의 댓글