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

Python에서 배열 요소가 동일한 인덱스 쌍을 계산하는 프로그램

<시간/>

nums라는 숫자 목록이 있다고 가정합니다. nums[i]와 nums[j]가 같도록 쌍 i

따라서 입력이 nums =[5, 4, 5, 4, 4]와 같으면 (0, 2), (1, 3), (1, 4)와 같은 인덱스 쌍이 있으므로 출력은 4가 됩니다. ) 및 (3, 4).

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

  • c :=숫자로 표시되는 각 요소의 빈도를 포함하는 목록

  • 개수 :=0

  • c의 모든 값 목록에서 각 n에 대해 수행

    • count :=count + floor of (n *(n - 1)) / 2

  • 반환 횟수

예시

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

from collections import Counter
def solve(nums):
   c = Counter(nums)
   count = 0
   for n in c.values():
      count += n * (n - 1) // 2
   return count

nums = [5, 4, 5, 4, 4]
print(solve(nums))

입력

[5, 4, 5, 4, 4]

출력

4