핀볼 게임
핀볼 하나만 이동시키면 되는 게임이다. 따라서 현재의 핀볼 위치, 방향과 핀볼의 다음 위치만 생각해주면 된다.
막힌 부분
그런데 핀볼의 초기 위치와 방향을 임의로 설정 가능하다고 되어있는데 이 부분을 구현하지 못했다. 일단 시작위치(0,0), 방향(0)으로 다른 로직들을 구현하긴 했는데.
임의로 설정 가능 : 0인 모든 위치에 각각 4가지 방향으로 시작할 수 있고, 블랙홀과 웜볼은 없을 수도 있다. 1번~5번 블록 갯수에 대한 언급은 나오지 않았다. 따라서 N의 최대 크기 100에 따라 100x100 크기 배열 모든 칸에 4가지 방향으로 시작하는 경우의 수가 존재한다. => 4^(100*100) >>> 1억. 시작 위치&방향이 임의로 가능하다고 되있지만 모든 경우를 해볼 순 없다. => 초기 위치&방향 어떻게 시작하란 말이야!?
정답 코드 - 초기 위치&방향 선택하는 부분 : N^2 2중 for문 내에서 4가지 방향으로 모든 경우를 다 해본다...이게 어떻게 가능하지...음..문제 출제자가 입력을 크지 않게 주는 것인가..
문제 정리
문제에서 주어진 대로 구현만 하면 되는 쉬운 문제였다. 다만 내가 잘 몰랐던 부분은, 0인칸이면 현재 방향으로 계속해서 직진하는 부분이였는데, 이것은 무한루프로 구현하는 것 까지는 ok, 그런데 다음 위치 nx,ny가 갱신되는 시점과 스코프를 잘 몰랐다.
웜볼 저장 꿀팁 : 웜볼은 2개씩, 최대 5쌍이 존재하고, 6이상 10이하인 수라는 특징을 이용하여 웜볼 번호를 인덱스로 하는 11x4 크기의 배열에 두개의 웜볼 위치 정보(x,y)를 저장할 수 있다! 이렇게 하면 웜볼 번호로 O(1)으로 위치를 바로 조회하고 바꿀 수 있다!
Last updated