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

Python에서 k 요소가 적어도 k 값을 갖는 k를 찾는 프로그램

<시간/>

음수가 아닌 숫자만 포함하는 nums라는 숫자 목록이 있다고 가정합니다. nums에 k보다 크거나 같은 요소가 정확히 k개 있으면 값 k를 찾습니다. 찾을 수 없으면 -1을 반환합니다.

따라서 입력이 nums =[6, 4, 0, 8, 2, 9]와 같으면 4보다 크거나 같은 요소가 정확히 4개 있기 때문에 출력은 4가 됩니다. [6, 4, 8, 9].

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

  • 목록 번호를 역순으로 정렬

  • 범위 1에서 숫자 - 1까지의 i에 대해 수행

    • i> nums[i - 1]이면

      • 루프에서 나오다

    • 그렇지 않으면 i> nums[i]일 때

      • 반환 i

  • 반환 -1

예시

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

def solve(nums):
   nums.sort(reverse=True)
   for i in range(1, len(nums)):
      if i >nums[i - 1]:
         break
      elif i > nums[i]:
         return i
   return -1

nums = [6, 4, 0, 8, 2, 9]
print(solve(nums))

를 반환합니다.

입력

[6, 4, 0, 8, 2, 9]

출력

4