크레인 인형뽑기 게임 (1)

최진훈·2022년 2월 17일
0

programmers

목록 보기
37/73

벌써부터 쉽지가 않아보인다. board에 담긴 수들을 새롭게 재배열한 뒤 moves의 수들을 뽑아서 해당 칸의 젤 위의 숫자(인형)부터 뽑아내면 될 듯 하다. 기존 board에서는 삭제 해주고 새로운 배열을 만들어서 거기에 넣어주는 식으로.
문제는 같은 두 수가 만났을 때 터져서 없어지는 구조를 만드는 것 인데, 뽑아낸 인형들을 담은 새 배열에 연속되는 수가 같으면 삭제 시키는 식으로 해봐야겠다.


일단 기존배열을 세로에 있는 숫자들끼리 묶어서 새로운 배열로 만들었다.

새로운배열로 만들고 moves대로 인덱스 접근 후 빼 주고 더해주고.

  1. 세로 숫자끼리 묶어서 새로운 배열을 저장 할 이중 배열new, 그 배열을 저장 할 때 임시로 사용할 배열 temp, 뽑아낸 인형을 더 해줄 어레이리스트 pick을 미리 선언한다.
  2. tempboard의 크기만큼 0으로 채운다.
  3. board를 중첩 for문을 이용하여 세로줄끼리 모아 new에 저장하여 새로운 배열을 만든다.
  4. 반복문을 통하여 moves의 값을 뽑아 -1해주어 new의 인덱스로 사용한다.
  5. new에서 0인 부분은 빈 공간이므로 0이 아닐 경우만 실행하는 조건문을 작성한다.
    5-1. 5번 조건문안에 인형을 골라서 새로운 배열에 저장하고 기존 배열에서는 삭제하는 조건문을 작성한다.
    5-2. 5번 조건문안에 인형 두개가 연속으로 pick에 들어오면 삭제되는 조건문으 작성한다.

순서를 정리하려니 좀 복잡하지만 코드가 좀 더러워 지더라도 이것저것 해보면서 공부하는게 도움이 될 것 같다.

레고레고

board크기를 5x5로 고정하여 코드를 짜봤는데 테스트 케이스에서 실패한다. 문제를 찾아야 하는데 나와 같은 테스트 케이스 실패인 사례가 거의 없어서 시간이 좀 걸릴 듯하다..

profile
레고레고

0개의 댓글