var a = ['프로그래머스', '크레인 인형뽑기 게임'];
❓ 문제
코딩테스트 연습 > 2019 카카오 개발자 겨울 인턴십 > 크레인 인형뽑기 게임
게임 화면의 격자의 상태가 담긴 2차원 배열 board와 인형을 집기 위해 크레인을 작동시킨 위치가 담긴 배열 moves가 매개변수로 주어질 때, 크레인을 모두 작동시킨 후 터트려져 사라진 인형의 개수를 return 하도록 solution 함수를 완성해주세요.
👨🔧 접근
- moves 배열의 요소들을 순서대로 읽는다.
- 요소에 해당하는 board 값을 stack에 쌓는다.
- 스택에 연속해서 쌓은 요소들을 제거 후 answer += 2;
💻 코드
const checkSuccesive = (array) => {
if(array.length > 1 && array[0] === array[1]){
array.splice(0,2);
return 1;
}
return 0;
} // 요소가 연속적으로 존재하는지 안하는지 판단
function solution(board, moves) {
let answer = 0;
let stack = [];
let repeat1 = moves.length;
let repeat2 = board.length; // 반복 횟수 지정
for(let i=0;i<repeat1;i++) {
let move = moves[0]-1;
moves.shift()
for(let j=0;j<repeat2;j++){
if(board[j][move]!=0){
stack.unshift(board[j][move]);
board[j][move] = 0;
if(checkSuccesive(stack)){answer+=2;}
break;
}
}
}
return answer;
}
👨🏫 리뷰
자바스크립트에서는 보다 간단하게 배열로 스택을 구현할 수 있었다. 배열 뒤에서부터 차곡차곡 쌓는 push와 pop을 쓸 수도 있고, 배열 앞쪽에서부터 쌓는 unshift와 shift를 사용할 수 있다.
Author And Source
이 문제에 관하여(var a = ['프로그래머스', '크레인 인형뽑기 게임'];), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@fbghgus123/var-a-프로그래머스-크레인-인형뽑기-게임저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)