on
[Algorithm/JavaScript] 크레인 인형뽑기(스택) 카카오 코딩테스트
[Algorithm/JavaScript] 크레인 인형뽑기(스택) 카카오 코딩테스트
문제
6-3) 크레인 인형뽑기. 뽑은 인형을 stack에 넣는데 stack의 top의 데이터와 같다면 해당 숫자 인형 제거하고, 총 몇 개의 숫자 인형이 제거되었는지 출력
입력예제
[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] //board 배열
[1,5,3,5,1,2,1,4] //moves 배열
출력예제
4
코드 - 내가 작성한 코드
function solution(board, moves) { let answer = 0; let select; let stack = []; for (let x of moves) { let i = 0; for (let i = 0; i < board.length; i++) { if (board[i][x - 1] !== 0) { select = board[i][x - 1]; board[i][x - 1] = 0; //뽑은 구역 데이터 0으로 if (stack[stack.length - 1] === select) //stack top에 있는 숫자와 select가 겹친다면 stack.pop(); answer += 2; } else stack.push(select); break; //인형을 하나만 꺼내기 위해 조건에 맞으면 break로 for문 멈춤 } } } return answer; } let a = [ [0, 0, 0, 0, 0], [0, 0, 1, 0, 3], [0, 2, 5, 0, 1], [4, 2, 4, 4, 2], [3, 5, 1, 3, 1], ]; let b = [1, 5, 3, 5, 1, 2, 1, 4]; console.log(solution(a, b));
정답코드와 유사하게 풀었다.
from http://yunred.tistory.com/88 by ccl(A) rewrite - 2021-12-31 15:01:44