Count Triplets hackerRank Solution: Looking for Count Triplets solution for Hackerrank problem? Get solution with source code and detailed explainer video.

You are given an array and you need to find number of tripets of indices **(i,j,k) **such that the elements at those indices are in geometric progression for a given common ratio **r** and **(i< j< k)****.
Go to problem statement**

## Explanation Video:

Youtube Channel partner: CodingCart

Mentor: Satyendra Jaiswal

Langauge: Python

## Source Code: for `countTriplets`

function

```
# Complete the countTriplets function below.
def countTriplets(arr, r):
count=0
bef={}
aft={}
for v in arr:
if v in aft:
aft[v]+=1
else:
aft[v]=1
for v in arr:
aft[v]-=1 #current
if v//r in bef and v %r ==0 and v*r in aft:
count+=bef[v//r]*aft[v*r]
if v in bef:
bef[v]+=1
else:
bef[v]=1
return count
```

coming soon…

coming soon…

## Full Source Code: countTriplets HackerRank Solution

```
#!/bin/python3
import math
import os
import random
import re
import sys
# Complete the countTriplets function below.
def countTriplets(arr, r):
count=0
bef={}
aft={}
for v in arr:
if v in aft:
aft[v]+=1
else:
aft[v]=1
for v in arr:
aft[v]-=1 #current
if v//r in bef and v %r ==0 and v*r in aft:
count+=bef[v//r]*aft[v*r]
if v in bef:
bef[v]+=1
else:
bef[v]=1
return count
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
nr = input().rstrip().split()
n = int(nr[0])
r = int(nr[1])
arr = list(map(int, input().rstrip().split()))
ans = countTriplets(arr, r)
fptr.write(str(ans) + '\n')
fptr.close()
```

coming soon…

coming soon…

**Like this article?** Follow us on Facebook and LinkedIn. You can also subscribe to our Youtube Channel.

This post is in partner with CodingCart.