인프런 커뮤니티 질문&답변

Kar님의 프로필 이미지

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

3. 크레인 인형뽑기(스택)

이 코드 어디에 문제가 있을까요..?

작성

·

164

0

강사님, 안녕하세요?

강사님 코드를 보면서 코드를 짜봤는데 출력이 2가 나옵니다.. ㅜㅜ

아무리 봐도 어디에 문제가 있는지 모르겠는데 어디에 문제가 있을까요..? ㅜㅜ

답변 2

0

Kar님의 프로필 이미지
Kar
질문자

강사님 말씀하신대로 break를 else 밖으로 빼주니까 정답이 나왔어요! 감사합니다 ^^

function solution(board, moves) {
  const stack = [];
  let cnt = 0;

  moves.forEach((pos) => {
    for (let i = 0; i < board.length; i++) {
      if (board[i][pos - 1] !== 0) {
        let target = board[i][pos - 1];
        board[i][pos - 1] = 0;
        if (target === stack[stack.length - 1]) {
          stack.pop();
          cnt += 2;
        } else {
          stack.push(target);
        }
        break;
      }
    }
  });
  return cnt;
}

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

지금 짜신 풀 코드를 제가 디버그 해볼 수 있도록 {;}를 이용해서  텍스트 형태로 올려주세요. 

코드를 봐서는 break 위치가 잘 못 된것 같은데요. else 안이 아니라 board의 값이 0이 아닌걸 만나면 스택에 처리하고 무조건 break해야 합니다. break를 else 밖으로 빼보세요.

Kar님의 프로필 이미지

작성한 질문수

질문하기