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