배열 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