Unique Pair whose Sum of Digits are Same – Infytq 2019 Solve

Problem: Consider a non-empty input array (inarr) containing non-zero positive Integer. From input array, identify the unique pairs of integers such that each of the integers in the pair have the same sum of the digits. Print outnum, the number of unique pairs identified satisfying the criteria. If no such pair of integers can be identified print -1.

Input format: Read the array inarr (input array) with the elements separated by ‘,’ (comma)

Output format: Print outnum or -1 accordingly

Sample Input:

34,89,6,321,53,45,2211,81

Sample Output:

4

Explanation: All the possible combinations are: (6, 321), (6, 2211), (321, 2211), (45, 81)

First combination: 6, 3+2+1 = 6
Second combination: 6, 2+2+1+1 = 6
Third combination: 3+2+1 = 6, 2+2+1+1 = 6
Fourth combination: 4+5 = 9, 8+1 = 6

Hence the output will be: 4 (Output)

Solution: We strongly recommend you to try the problem first before moving to the solution.

Python

# Python code for Unique Pairs and Digit Sum
# www.codewindow.in

import math
list_num=input().split(',')

sum_dig_list=[]

for num in list_num:
    sum_dig=sum(list(map(int, num)))
    sum_dig_list.append(sum_dig)
max_sum=max(sum_dig_list)
list_digit_count=[0]*(max_sum+1)

for num in sum_dig_list:
    list_digit_count[num] += 1

total_pair=0

for count in list_digit_count:
    if count>1:
        total_pair += int(math.factorial(count)/(math.factorial(count-2)*2))
if total_pair==0:
    print('-1')
else:
    print(total_pair)

Input:

34,89,6,321,53,45,2211,81

Output:

4

Follow Us

You Missed


Leave a Comment

Your email address will not be published. Required fields are marked *