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

밥의 파이썬 게임


Bob이라는 친구가 있고 그는 자신과 게임을 하고 있다고 가정합니다. 그는 자신에게 nums라는 숫자 목록을 제공합니다. 이제 매 차례마다 Bob은 목록의 두 요소를 선택하고 선택한 숫자와 합이 같은 하나의 양의 정수로 바꿉니다. Bob은 배열의 모든 숫자가 짝수일 때 승리를 선언합니다. Bob이 승리를 선언할 수 있도록 하는 데 필요한 최소 턴 수를 찾아야 합니다. 그런 솔루션이 없으면 -1을 반환합니다.

따라서 입력이 [2, 3, 4, 9, 7, 13]과 같으면 3,9를 가져오고 12로 바꾸고 7,13을 20으로 바꿀 수 있으므로 출력은 2가 됩니다.

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

  • a :=숫자에서 홀수 요소만 가져오는 목록

  • 의 크기가 홀수이면

    • 반환(a의 크기)/2

  • 그렇지 않으면 -1을 반환

더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −

예시

class Solution:
   def solve(self, nums):
      a = [x for x in nums if x %2 == 1]
      if len(a) %2 == 0:
         return len(a)/2;
      return -1;
ob = Solution()
print(ob.solve([2, 3, 4, 9, 7, 13]))

입력

[2, 3, 4, 9, 7, 13]

출력

2