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

Python에서 배열 제거 게임의 승자를 찾는 프로그램

<시간/>

Amal과 Bimal이 하나의 배열 A와 몇 개의 숫자가 있는 게임을 하고 있다고 가정합니다. 게임 규칙은 다음과 같습니다.

  • Bimal은 항상 시작됩니다.
  • 매 턴마다 한 플레이어는 배열에서 최대 요소를 삭제하고 삭제된 요소의 오른쪽에 있는 다른 모든 요소도 삭제됩니다.
  • 교대로 연주
  • 남은 요소를 모두 제거하는 플레이어가 게임에서 승리합니다.

따라서 입력이 nums =[5,2,6,3,4]와 같으면 출력은 Amal이 됩니다. 왜냐하면 처음에는 Bimal이 [6,3,4]를 제거하므로 배열은 [5,2]가 되기 때문입니다. 그러면 Amal이 모두 제거하므로 그가 승자가 됩니다.

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

  • 최대:=-1
  • 카운트:=0
  • 숫자 단위로 각각의 a에 대해 다음을 수행합니다.
    • 최대값이 0이 아닌 경우
      • 카운트 :=카운트 + 1
      • 최대:=
  • 카운트 모드 2가 0과 같으면
    • "아말" 반환
  • "비말" 반환

예시

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

def solve(nums):
   maximum = -1
   count = 0
   for a in nums:
      if a > maximum:
         count += 1
         maximum = a
   if count % 2 == 0:
      return "Amal"
   return "Bimal"

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

입력

[5,2,6,3,4]

출력

Amal