Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 처음 n개의 자연수를 사용하여 배열을 증가 또는 감소시키는 올바른 회전 형태를 확인하는 프로그램

<시간/>

n개의 요소가 있는 nums라는 숫자 목록이 있다고 가정합니다. [1, 2, ..., n] 또는 [n, n - 1, ..., 1]과 같이 증가 또는 감소 방식으로 처음 n개의 자연수로 목록을 만들 수 있는지 여부를 확인해야 합니다. 몇 번이든 오른쪽으로 숫자를 지정합니다.

따라서 입력이 nums =[5,6,1,2,3,4]와 같으면 출력은 True가 됩니다. 왜냐하면 배열을 [1,2,3,4, 5,6]

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • n :=숫자 크기
  • 1에서 n - 1 사이의 i에 대해 다음을 수행합니다.
    • 만약 |숫자[i - 1] - 숫자[i]| 1이 아니고 |nums[i - 1] - nums[i]| n-1이 아닌 경우
      • 거짓을 반환
  • 참 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def solve(nums):
   n = len(nums)
   for i in range(1, n):
      if abs(nums[i - 1] - nums[i]) != 1 and abs(nums[i - 1] - nums[i]) != n - 1:
         return False
   return True

nums = [5,6,1,2,3,4]
print(solve(nums))

입력

[5,6,1,2,3,4]

출력

True