[수업]달팽이
문제
%EB%8B%AC%ED%8C%BD%EC%9D%B4/aa58768d-85bd-413d-baf0-8735572c25d1.png)
%EB%8B%AC%ED%8C%BD%EC%9D%B4/1ebe2788-2fcb-4ad4-b1d9-c97233d0d4ad.png)
풀이
범위는 항상 조심할것.
- 여기서는 long으로 해줘야한다.
- 물론 입력받을때도 마찬가지.
- 또한 정사각형인지 판별은 매우 쉬우니까 패스.
p=0 : 1  
p=1 : 17 -> 4*(n-1)+1  
p=2 : 25 -> 4*((n-1)+(n-3))+1  
p=k : ? -> 4*((n-1)+(n-3)+(n-5)+...+(n-(2k-1)))+1  
=> 4(N-1), 4(N-3) ... 아이디어를 사용해서 해결
- p는 네모난 껍질이라고 생각하면 되며, 0번째 껍질은 최외곽이며 첫번째 숫자가 1
- p=1의 경우 1번째 껍질이며 첫번째 숫자가 17
- …. 이런식으로 가면 공식을 구해낼 수 있다.
따라서 이 p를 활용해서 A, B의 위치를 추적하는 형식으로 알고리즘을 짜면 된다.
댓글남기기