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