Sunday, July 30, 2017

Mini-Max Sum - Problem from HackerRank and Solution Using python 2

Problem Statement:

Given five positive integers, find the minimum and maximum values that can be calculated by summing exactly four of the five integers. Then print the respective minimum and maximum values as a single line of two space-separated long integers.
Input Format
A single line of five space-separated integers.
Constraints
  • Each integer is in the inclusive range .
Output Format
Print two space-separated long integers denoting the respective minimum and maximum values that can be calculated by summing exactly four of the five integers. (The output can be greater than 32 bit integer.)
Sample Input
1 2 3 4 5
Sample Output
10 14
Explanation
Our initial numbers are , and . We can calculate the following sums using four of the five integers:
  1. If we sum everything except , our sum is .
  2. If we sum everything except , our sum is .
  3. If we sum everything except , our sum is .
  4. If we sum everything except , our sum is .
  5. If we sum everything except , our sum is .
As you can see, the minimal sum is  and the maximal sum is . Thus, we print these minimal and maximal sums as two space-separated integers on a new line.
Hints: Beware of integer overflow! Use 64-bit Integer.

Solution using python 2:

arr = map(int, raw_input().strip().split(' '))
Min = sum(arr) - max(arr)
Max = sum(arr) - min(arr)
print Min,Max


Monday, July 24, 2017

'The Minion Game' - From Hacker Rank and Solution using python 2

Problem Statement:

Kevin and Stuart want to play the 'The Minion Game'.
Game Rules
Both players are given the same string, .
Both players have to make substrings using the letters of the string .
Stuart has to make words starting with consonants.
Kevin has to make words starting with vowels.
The game ends when both players have made all possible substrings. 
Scoring
A player gets +1 point for each occurrence of the substring in the string .
For Example:
String  = BANANA
Kevin's vowel beginning word = ANA
Here, ANA occurs twice in BANANA. Hence, Kevin will get 2 Points.

For better understanding, see the image below: 
Your task is to determine the winner of the game and their score.
Input Format
A single line of input containing the string .
Note: The string  will contain only uppercase letters: .
Constraints

Output Format
Print one line: the name of the winner and their score separated by a space.
If the game is a draw, print Draw.
Sample Input
BANANA
Sample Output
Stuart 12
Note : 
Vowels are only defined as . In this problem,  is not considered a vowel.
Solution using python 2:
def minion_game(sUserInputString):
    vowel = ['A','E','I','O','U']
    StuartScore = 0 # Number of Word start with consonant
    KevinScore = 0 # Number of Word start with vowel
    ## For string size of N, at K position we can create N-K word
    ## Find each character of the string as per their index
    for index, char in enumerate(sUserInputString):
        if char in vowel:
            # Then Kevin Score can be calculated by subtracting index of character from length of main string
            KevinScore += len(sUserInputString) - index
        else:
            # Then Score Score can be calculated by subtracting index of character from length of main string
            StuartScore += len(sUserInputString) - index

    if StuartScore > KevinScore :
        # If Stuart score is more than Kevin, Then print Stuart as winner with his total score
        print 'Stuart\t',StuartScore
    elif StuartScore == KevinScore:
        # If Score is leveled between Stuart and Kevin, then print Draw
        print 'Draw'
    else:
        # Print Kevin as winner with his total score
        print 'Kevin\t',KevinScore