Saturday, July 18, 2020

No Idea!-HackerRank Solution

 No Idea!-HackerRank Solution

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

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

Constraints


Input Format

The first line contains integers  and  separated by a space.
The second line contains  integers, the elements of the array.
The third and fourth lines contain  integers,  and , 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  unit of happiness for elements  and  in set . You lose  unit for  in set . The element  in set  does not exist in the array so it is not included in the calculation.

Hence, the total happiness is .


No Idea Solution-


n, m = input().split() #takes  n and m input 
search_ar = input().split()   #takes input of search_ar with n elements
A = set(input().split())    #takes input of Array A with m elements using set to get unique elements
B = set(input().split())    #takes input of Array A with n elements using set to get unique elements
print (sum([(i in A) - (i in B) for i in search_ar])) # Use membership operator in to find the element i in both A and B

Explanation-

In the print statement, we are using membership operator '
in' to search for an element in array A and B. If we just print (i in A) we will get the list of true and false, but if you arithmetic operation minus with (i in B) we will get a list of elements like [1,-1,1]. Later we will implement sum() to get the sum of elements in the list.

To read more about sets follow this link-https://www.geeksforgeeks.org/sets-in-python/

0 comments:

Post a Comment

Feel free to share your thoughts and suggestion...