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

hhkim·2023년 7월 17일
0

Algorithm - JavaScript

목록 보기
67/188
post-thumbnail

풀이 과정

  1. moves 배열에 대해 반복하면서 값 누적: reduce()
  2. move에 해당하는 수 찾기: y가 move - 1인 board의 요소 중 x가 가장 작은 수
  3. 2에서 찾은 자리를 0으로 바꿈(꺼내기)
  4. 꺼낸 수를 바구니 배열의 마지막 요소와 비교: at()
    같으면 바구니 배열의 마지막 요소 꺼내고 결과 +2: pop()
    다르면 바구니에 넣기: push()

코드

function solution(board, moves) {
  const basket = [];
  return moves.reduce((result, move) => {
    let doll;
    for (let i = 0; i < board.length; ++i) {
      if (board[i][move - 1] !== 0) {
        doll = board[i][move - 1];
        board[i][move - 1] = 0;
        break;
      }
    }
    if (!doll) return result;
    if (doll === basket.at(-1)) {
      basket.pop();
      return result + 2;
    }
    basket.push(doll);
    return result;
  }, 0);
}

2개의 댓글

comment-user-thumbnail
2023년 7월 17일

잘봤습니다. 좋은 글 감사합니다.

답글 달기
comment-user-thumbnail
2023년 7월 17일

저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!

답글 달기