작성
·
182
0
function solution(board, moves) {
let answer = 0; //count
let stack = []; //바구니
//크레인 for문 돌리기
for (const x of moves) {
//크레인 위치, index에 맞게 설정
let idx = x - 1;
//borad 체크
for (let i = 0; i < board.length; i++) {
//인형
const v = board[i][idx];
//0 & null이면 그냥 넘기기 > 다음값을 넣어야 함
//null = 이미 바구니에 들어간 값
if (v !== 0 && v !== null) {
//이미 바구니에 있는 경우
if (v === stack.at(-1)) {
let pop = stack.pop();
answer += 2;
} else stack.push(v);
board[i].splice(idx, 1, null);
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));
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
wodms4525님, 주신 코드 예외에 대하여 확인해 보았습니다.
주어진 코드에서는 크레인 게임을 구현하는 로직을 보여주고 있고, 잘못된 부분은 보이지 않습니다. 이 코드는 board
배열에서 moves
배열에 지정된 위치에 해당하는 인형을 스택으로 옮기면서 점수를 계산하는 것으로 보입니다. 만약 인형을 올바르게 스택으로 옮기고 있고, 스택의 최상단 인형과 같은 인형을 뽑았을 경우에 점수를 추가로 계산하는 로직을 포함하고 있습니다.
주어진 코드에서 가정할 수 있는 예외 상황은 스택의 최상단과 비교하여 인형을 제거하는 과정에서 실수가 발생할 수 있지만, stack.at(-1)
로 최상단 인형을 확인하고 있어 예외 상황이 적절히 처리되고 있는 것으로 보입니다.
function solution(board, moves)
함수 외에 다른 상황에서 예외가 발생하는 건지, 구체적인 상황을 알려 주시면 코드에 대해 더 자세히 살펴볼 수 있겠습니다.
필요한 추가 답변이나 다른 프로그래밍 관련 질문이 있다면 언제든지 문의해 주세요.