벌써부터 쉽지가 않아보인다. board
에 담긴 수들을 새롭게 재배열한 뒤 moves
의 수들을 뽑아서 해당 칸의 젤 위의 숫자(인형)부터 뽑아내면 될 듯 하다. 기존 board
에서는 삭제 해주고 새로운 배열을 만들어서 거기에 넣어주는 식으로.
문제는 같은 두 수가 만났을 때 터져서 없어지는 구조를 만드는 것 인데, 뽑아낸 인형들을 담은 새 배열에 연속되는 수가 같으면 삭제 시키는 식으로 해봐야겠다.
일단 기존배열을 세로에 있는 숫자들끼리 묶어서 새로운 배열로 만들었다.
새로운배열로 만들고 moves
대로 인덱스 접근 후 빼 주고 더해주고.
new
, 그 배열을 저장 할 때 임시로 사용할 배열 temp
, 뽑아낸 인형을 더 해줄 어레이리스트 pick
을 미리 선언한다.temp
를 board
의 크기만큼 0으로 채운다.board
를 중첩 for
문을 이용하여 세로줄끼리 모아 new
에 저장하여 새로운 배열을 만든다.moves
의 값을 뽑아 -1해주어 new
의 인덱스로 사용한다.new
에서 0인 부분은 빈 공간이므로 0이 아닐 경우만 실행하는 조건문을 작성한다.pick
에 들어오면 삭제되는 조건문으 작성한다.순서를 정리하려니 좀 복잡하지만 코드가 좀 더러워 지더라도 이것저것 해보면서 공부하는게 도움이 될 것 같다.
레고레고
board
크기를 5x5로 고정하여 코드를 짜봤는데 테스트 케이스에서 실패한다. 문제를 찾아야 하는데 나와 같은 테스트 케이스 실패인 사례가 거의 없어서 시간이 좀 걸릴 듯하다..