HackerRank Python Solution - Sets - No Idea!

There is an array of n integers. There are also 2 disjoint sets, A and B, each containing m integers. You like all the integers in set A and dislike all the integers in set B. Your initial happiness is 0. For each i integer in the array, if i ∊ A, you add 1 to your happiness. If i ∊ B, you add -1 to your happiness. Otherwise, your happiness does not change. Output your final happiness at the end.

Note: Since A and B are set, they have no repeated elements. However, the array might contain duplicate elements.

Constraints:
  • 1 <= n <= 105
  • 1 <= m <= 105
  • 1 <= Any integer in the input <= 109
Input Format:
  • The first line contains integers n and m separated by a space.
  • The second line contains n integers, the elements of the array.
  • The third and fourth lines contain m integers, A and B, respectively.
Output Format:
  • Output a single integer, your total happiness.
Sample Input:

3 2
1 5 3
3 1
5 7
Sample Output:

1
Explanation:
  • You gain 1 unit of happiness for elements 3 and 1 in set A. You lose 1 unit for 5 in set B. The element 7 in set B does not exist in the array so it is not included in the calculation.
  • Hence, the total happiness is 2-1=1.
Solution:

n,m = input().split()

arr = input().split()

A = set(input().split())
B = set(input().split())

print(sum([(i in A) - (i in B) for i in arr]))
Disclaimer: The problem statement is given by hackerrank.com but the solution is generated by the Geek4Tutorial admin. If there is any concern regarding this post or website, please contact us using the contact form. Thank you!

No comments:

Post a Comment

You might also like

Deploy your Django web app to Azure Web App using App Service - F1 free plan

In this post, we will look at how we can deploy our Django app using the Microsoft Azure app service - a free plan. You need an Azure accoun...