2019 카카오 개발자 겨울 인턴십
인형뽑기 게임을 실행했을 때 총 몇개의 캐릭터가 없어지는지 구하는 문제입니다.
board배열에서 캐릭터를 뽑습니다. (해당 캐릭터는 board배열에서 지워줍니다.)
뽑힌 캐릭터를 배열에 넣고 이전 값과 비교해서 같으면 두개를 지우면서 결과값에 2를 더해줍니다.
function solution(board, moves) {
let answer = 0;
let stack = [];
let index = 1;
let x, y;
let height = [];
for(let i=0; i<board[0].length; ++i){
height[i] = 0;
}
stack[0] = 0;
for(let i=0; i<board.length; ++i){
for(let j=0; j<board[i].length; ++j){
if(board[i][j] !== 0){
height[j] = Math.max(height[j], board.length - i);
}
}
}
for(let i=0; i<moves.length; ++i){
x = moves[i] - 1;
y = board.length - height[x];
if(board[y][x] === 0){
continue;
}
if(height[x] > 1){
--height[x];
}
stack[index] = board[y][x];
if(stack[index] === stack[index - 1]){
answer+=2;
--index;
stack = stack.slice(0, index);
} else {
++index;
}
board[y][x] = 0;
}
return answer;
}
'알고리즘' 카테고리의 다른 글
[Java] SWEA - 스도쿠 검증 (0) | 2023.01.11 |
---|---|
[Java] SWEA - 원재의 메모리 복구하기 (0) | 2023.01.11 |
[JavaScript] 프로그래머스 - 숫자 문자열과 영단어 (0) | 2021.09.14 |
[C++] 프로그래머스 - 불량 사용자 (0) | 2021.09.14 |
[C++] 프로그래머스 - 셔틀버스 (0) | 2021.09.14 |