크레인 인형뽑기 게임

·2022년 4월 8일
0

알고리즘

목록 보기
40/47
post-thumbnail

업로드중..

카카오문제는 왜이렇게 읽어나가는데 시간이 오래걸리는지
그러니까 카카오겠지

생각보다는? 푸는데 시간을 많이 쓰지는 않았다.
생각보다...생각보다?

function solution(board, moves) {
  let arr = [];
  let count = 0;
  for (num of moves) {
    for (let i = 0; i < board.length; i++) {
      if (board[i][num - 1] !== 0) {
        arr.push(board[i][num - 1]);
        board[i][num - 1] = 0;
        break;
      }
    }
  }
  rere(arr);
  function rere(arr) {
    for (let i = 0; i < arr.length; i++) {
      if (arr[i] === arr[i + 1]) {
        arr.splice(i, 2);
        count += 2;
        rere(arr);
      } else{
          false
      }
    }
  }
  return count;
}

재귀함수를 썼는데 저거 짝퉁이다. 제대로 만들었어야했는데 씁

순서는 이렇게 돌아간다

  1. 입력값에 따라 들어온 배열에서 값을 뽑아 배열에 집어 넣는다.
  2. 값을 뽑은 배열의 경우 값을 0으로 바꿔준다.
  3. 뽑힌 값들이 모여있는 배열을 재귀함수를 통하여
  4. 반복문이 돌아가는 현재의 인덱스와, 바로 다음의 인덱스를 비교해서 둘이 같을 경우 제거를 하고
  5. 카운트를 +2를 올린다.
  6. 그리고 카운트를 리턴한다

생각보다는 어렵게 풀진 않았다. 음..... 근데 너무 반복문으로 푸는 것 같아서 좀 고쳐나가야할 것 같긴 한데
일단 지금은 푸는게 우선이라고 생각이 들기도 하고
다양한 문제를 많이 풀어보면 방법도 분명 다양하게 생각할 것이라고 생각한다.

profile
물류 서비스 Backend Software Developer

0개의 댓글