바구니에 인형을 담고 같은 것이 두개가 담겨지면 터지는 구조이다.
총 몇개 터지는지 출력하는 코드를 작성해보자.
아래 코드를 보자.
<body>
<script>
function solution(board, moves) {
let answer = 0;
// 빈 스택을 만들어 주고
let stack = [];
// board 길이만큼 for문 돌아주고
moves.forEach(pos => {
for (let i = 0; i < board.length; i++) {
// 게임화면에 들어있는 인형이 0이 아니라면
if (board[i][pos - 1] !== 0) {
// 크레인의 위치의 인형 지정해주고
let tmp = board[i][pos - 1];
// 넣었던 인형의 위치를 0으로 만들어주고
board[i][pos - 1] = 0;
// 크레인위치 인형이랑 바구니 스택에 젤위에 값과 같으면
if (tmp === stack[stack.length - 1]) {
// 스택에서 pop해주고
stack.pop();
// 두개 터지니까 2해준다.
answer += 2;
}
// 아니면 스택에 tmp푸시해준다.
else stack.push(tmp);
break;
}
}
});
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));
</script>
</body>
<출처 : 자바스크립트 알고리즘 문제풀이(코딩테스트 대비): 김태원>
참고:
자바스크립트 알고리즘 문제풀이(코딩테스트 대비) - 인프런 | 강의
자바스크립트(JavaScript)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 재미있게 풀 수 있는 기초 단계 문제부터 고급 알고리즘까지 단계별로 차근차근 배우도록 설계된 강좌입니다., 개발
www.inflearn.com
'JavaScript > JS_Algorithm' 카테고리의 다른 글
[인프런 - JS 알고리즘 문제풀이] stack판단5 (0) | 2021.08.06 |
---|---|
[인프런 - JS 알고리즘 문제풀이] stack판단4 (0) | 2021.08.05 |
[인프런 - JS 알고리즘 문제풀이] stack판단2 (0) | 2021.08.05 |
[인프런 - JS 알고리즘 문제풀이] stack판단 (0) | 2021.08.05 |
[인프런 - JS 알고리즘 문제풀이] 공통인자 구해보기 (0) | 2021.08.05 |