Introduction to sets in Python - HackerRank solution

Solution for hackerRank problem Find a string in python

Problem :

set is an unordered collection of elements without duplicate entries.
When printed, iterated or converted into a sequence, its elements will appear in an arbitrary order.

>>> print set()

set([])


>>> print set('HackerRank')

set(['a', 'c', 'e', 'H', 'k', 'n', 'r', 'R'])


>>> print set([1,2,1,2,3,4,5,6,0,9,12,22,3])

set([0, 1, 2, 3, 4, 5, 6, 9, 12, 22])


>>> print set((1,2,3,4,5,5))

set([1, 2, 3, 4, 5])


>>> print set(set(['H','a','c','k','e','r','r','a','n','k']))

set(['a', 'c', 'r', 'e', 'H', 'k', 'n'])


>>> print set({'Hacker' : 'DOSHI', 'Rank' : 616 })

set(['Hacker', 'Rank'])


>>> print set(enumerate(['H','a','c','k','e','r','r','a','n','k']))

set([(6, 'r'), (7, 'a'), (3, 'k'), (4, 'e'), (5, 'r'), (9, 'k'), (2, 'c'), (0, 'H'), (1, 'a'), (8, 'n')])



Basically, sets are used for membership testing and eliminating duplicate entries.

Task

Now, let's use our knowledge of sets and help Mickey.

Ms. Gabriel Williams is a botany professor at District College. One day, she asked her student Mickey to compute the average of all the plants with distinct heights in her greenhouse.

Formula used:

Average = sum of distinct heghts / total number of distinct heights

Function Description

Complete the average function in the editor below.

average has the following parameters:

  • int arr: an array of integers
Returns

  • float: the resulting float value rounded to 3 places after the decimal

Input Format

The first line contains the integer,N, the size of arr.
The second line contains the N space-separated integers, arr[i].

Constraints

0 < N <= 100

Sample Input

STDIN                                                                       Function

-----                                                                            --------

10                                                                              arr[] size N = 10

161 182 161 154 176 170 167 171 170 174       arr = [161, 181, ..., 174]

Sample Output

169.375

Explanation

Here, set ( [154, 161, 167, 170, 171, 174, 176, 182 ] )  is the set containing the distinct heights. Using the sum() and len() functions, we can compute the average.

Average = 1355 / 8 = 169.375

Code

def average(array):

    # your code goes here

    array=set(array)

    size = len(array)

    avg = sum(array)/size

    return avg


if __name__ == '__main__':

    n = int(input())

    arr = list(map(int, input().split()))

    result = average(arr)

    print(result)


Comments

Popular posts from this blog

Finding the percentage in python - HackerRank solution

HackerRank challenges with solutions (Rearrangement, Formula, Word sorting, Numbers, Sentence)

What's your name, Tuple - HackerRank solution in python