문제풀이
- 초기에 이동한 정보를 어떻게 뒤에 까지 들고가야 할까를 계속 고민하다가 패턴을 써보고서야 규칙이 있다는 것을 알게되었다.
public static int dx[] = {0,-1,0,1};
public static int dy[] = {1,0,-1,0};
위 코드는 실제 코드에서 이동을 위한 x,y증감 값을 저장해놓은 것 이다.
- 3세대 : 0 1 2 1 / 2 3 2 1
- 4세대 : 0 1 2 1 2 3 2 1 / 2 3 0 3 2 3 2 1
가운데 /를 기준으로 역방향으로 +1씩하는 규칙이 보인다. 3의 경우는 %4를 하여 0이 된다.
ex){0 {1 {2 {1 / (1+1)} (2+1)} (1+1)} 1}
이러한 규칙을 이용해 구현하면 해결할 수 있다.
코드
solution
문제링크
boj/15685