멀리 떨어진 왕국에서 체스 여왕은 나선 경로를 따라 매일 걸어 n
다닙니다. 나선 자체를 따르지 않고 단순히 체스 판에서 여왕의 움직임을 만듭니다. 여왕은 그녀의 주제에 의해 사랑 받고, 그녀가 그녀의 길을 방문하는 모든 광장을 기록합니다. 여왕이 어떤 광장에서든 걷기를 시작하고 어떤 광장에서나 끝낼 수 있다는 것을 감안할 때, 그녀가 취할 수있는 가장 짧은 여왕의 걷기는 무엇입니까?
도전
사각형 격자에 정수의 나선이 주어지면 체스 여왕의 움직임을 사용 하여이 나선형 격자의 두 숫자 사이에서 가능한 가장 짧은 경로 중 하나 (이동 한 셀 수로 계산) 를 반환하는 함수를 작성하십시오 .
예를 들어,에서 16
에 25
:
25 10 11 12 13
24 9 2 3 14
23 8 1 4 15
22 7 6 5 16
21 20 19 18 17
가능한 경로는 16, 4, 2, 10, 25
및 16, 5, 1, 9, 25
입니다.
규칙
- 입력은 두 개의 양의 정수입니다.
- 출력은 직교 및 대각선 이동 만 사용하여 나선에 걸쳐 정수 경로 (두 끝점 포함)가됩니다.
- 경로의 길이는 이동 한 셀 수로 계산됩니다.
- 귀하의 답변은 프로그램 또는 기능 일 수 있습니다.
- 이것은 코드 골프이므로 가장 적은 수의 바이트가 이깁니다.
문제가 명확하지 않은 경우 언제든지 알려주십시오. 행운과 좋은 골프!
테스트 사례
>>> queen_spiral(4, 5)
4, 5
>>> queen_spiral(13, 20)
13, 3, 1, 7, 20
>>> queen_spiral(14, 14)
14
>>> queen_spiral(10, 3)
10, 11, 3
>>> queen_spiral(16, 25)
16, 4, 2, 10, 25
>>> queen_spiral(80, 1)
80, 48, 24, 8, 1