어느 날 당신은 자신이 배열에 잡힌 것을 찾기 위해 깨어 있습니다. 한 번에 하나의 색인을 취해 나 가려고하지만 다른 규칙이있는 것 같습니다.
배열은 자연수로 완전히 채워집니다.
- index 자신을 찾으면
n
다음을array[n]
제외하고 index로 이동합니다 . n
소수 인 인덱스에 자신을 찾으면array[n]
뒤로 물러납니다.
예 : 4
이 배열 에서 index로 시작합니다 (시작 색인은 0 임).
array = [1,4,5,6,8,10,14,15,2,2,4,5,7];
-----------------^ you are here
현재 필드의 값이 8
이므로 8
첫 번째 단계로 색인 으로 이동합니다 . 착륙하는 필드에는 값이 포함되어 있습니다 2
. 그런 다음 2
두 번째 단계 로 색인 으로 이동 하십시오. 으로 2
소수이며, 당신은 세 번째 단계 인 다시 5 조치를 취합니다. index가 없으므로 -3
총 3 단계로 배열을 이스케이프했습니다.
당신의 임무는 :
배열 및 시작 색인을 매개 변수로 승인하고 배열을 이스케이프하기위한 단계 수를 출력하는 프로그램 또는 함수를 작성합니다. 배열을 이스케이프 할 수없는 경우 (예 : [2,0,2]
start-index 2
=>를 사용하면 지속적으로 index 2
에서으로 이동 0
) 잘못된 값을 출력하십시오. 1 기반 색인화 또는 0 기반 색인화를 사용할 수 있지만 사용할 색인을 지정하십시오.
테스트 사례
입력: [2,5,6,8,1,2,3], 3
산출: 1
입력: [2, 0, 2], 2
산출: false
입력 : [14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5
;
산출: 6
가장 짧은 답변이 이깁니다.