알고리즘/test
javascript) 프로그래머스 - 크레인 인형뽑기 게임
이경찬 :)
2023. 2. 20. 12:29
https://school.programmers.co.kr/learn/courses/30/lessons/64061
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
실행코드
function solution(board, moves) {
const pickedDolls = [];
let score = 0;
moves.forEach(order => {
const doll = pickup(board, order - 1);
if (doll) {
if (pickedDolls[pickedDolls.length - 1] === doll) {
pickedDolls.pop();
score += 2;
} else {
pickedDolls.push(doll);
}
}
});
return score;
}
function pickup(board, order) {
for (let i = 0; i < board.length; i++) {
if (board[i][order] !== 0) {
const [doll, rowIndex] = [board[i][order], i];
board[rowIndex][order] = 0;
return doll;
}
}
return null;
}
풀이
pickup함수는 board와 order를 받아서 board의 order-1와 맞는 인자가 0이 아니면 그 해당인자를 doll로 return 해주고 board의 해당 요소를 0으로 바꿔서 인형을 뽑도록 해준다.
solution에서 만약 return한 doll과 가장 오른쪽의 요소와 같으면 score를 +2해주고 pickedDolls의 맨 오른쪽 요소를 pop해준다. else일 경우 doll을 배열에 push해준다.