새소식

알고리즘 테스트 ⏲/프로그래머스

[KAKAO INTERNSHIP] 크레인 인형뽑기 풀이 / JavaScript

  • -
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

작성 코드 (1차시도 / 통과)

function solution(board, moves) {
  const stk = [];
  let result = 0;
  moves.forEach((c) => {
    for (let i = 0; i < board[0].length; i += 1) {
      if (board[i][c - 1]) {
        stk.push(board[i][c - 1]);
        board[i][c - 1] = 0;
        break;
      }
    }
    for (let i = 1; i < stk.length; i += 1) {
      if (stk[i] === stk[i - 1]) {
        stk.splice(i - 1, 2);
        result += 2;
      }
    }
  });
  return result;
}

구현 로직

배열을 위에서 아래로 탐색하는 부분만 잘 작성하면 됩니다. 크레인이 움직인 구간(moves)의 값들을 하나씩 순회하면서 0이 아닌 수를 마주치는 경우 그 값을 빈 배열 stk에 넣어주고 stk을 탐색하여 현재 위치와 이전 위치의 수가 동일한 경우(같은 인형) 제거하고 카운트를 늘려주면 됩니다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.