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

Python에서 주어진 횟수만큼 수행된 주어진 연산으로 주어진 배열을 0으로 줄일 수 있는지 확인

<시간/>

배열 nums와 값 k가 있다고 가정하고 다음 작업을 정확히 k번 수행하여 nums의 요소를 0으로 만들 수 있는지 확인해야 합니다.

  • 연산:nums의 0이 아닌 모든 값에서 nums에서 가장 작은 요소를 뺍니다.

따라서 입력이 nums [2, 2, 3, 5] k =3과 같으면 처음에는 배열에서 2를 삭제하므로 출력은 True가 되므로 배열은 [0, 0, 1, 3]이 됩니다. 그런 다음 1을 제거하여 [0, 0, 0, 2]를 얻은 다음 다시 2를 삭제하여 [0, 0, 0, 0]을 얻습니다.

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

  • k개의 고유한 요소가 있는 경우
  • 참 반환
  • 거짓을 반환

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

예시 코드

def solve(nums, k):
   distinct = set(nums)
 
   if len(distinct) == k:
      return True
   return False
   
nums = [2, 2, 3, 4]
k = 3
print(solve(nums, k))

입력

[2, 2, 3, 4], 3

출력

True