음수가 아닌 숫자만 포함하는 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