• Home
  • Subscribe
  • Contribute Us
    • Share Your Interview Experience
  • Contact Us
  • About
    • About CSEstack
    • Campus Ambassador
  • Forum & Discus
  • Tools for Geek
  • LeaderBoard
CSEstack

What do you want to Learn Today?

  • Programming
    • Tutorial- C/C++
    • Tutorial- Python
    • Tutorial- Java
    • Tutorial- HTML & CSS
    • Tutorial- MySQL
    • Competitive Coding Challenges
  • CSE Subject
    • (CD) Compiler Design
    • (CN) Computer Network
    • (COA) Computer Organization & Architecture
    • (DBMS) Database Management System
    • (DS) Data Structure
    • (OS) Operating System
    • (ToA) Theory of Automata
    • (WT) Web Technology
  • Interview Questions
    • Interview Questions- Company Wise
    • Interview Questions- Coding Round
    • Interview Questions- Python
    • Interview Questions- REST API
    • Interview Questions- Web Scraping
    • Interview Questions- HR Round
    • Aptitude Preparation Guide
  • GATE 2020
  • Linux
  • Trend
    • (AI) Artificial Intelligence
    • BigData
    • Cloud Computing
    • (ML) Machine Learning
  • Write for Us
    • Write for Us
    • Submit Source Code or Program
    • Share Interview Experience
  • Tools

Python Competitive Programming Questions for Practice

Aniruddha Chaudhari/9384/2
CodePython

This space is to list Python competitive programming questions.

You can use questions for coding practice. As we progress, I will keep adding more coding questions here.

This initiate is a part of our FREE Python online tutorial.

Table of Contents

  • 0. Count Common Factor
  • 1. Does it Divide?
  • 2. Sum of sub-arrays
  • 3. Maximum Profit by buying and selling stocks

0. Count Common Factor

This problem is asked in one of the HackerEarth contest.

Problem Statement: Little Robert likes mathematics. Today his teacher has given him two integers and asked to find out how many integers can divide both the numbers. Would you like to help him in completing his school assignment?

Input Formatting: Thre is two integers, a and b as input to the program.

Output Formatting: Print the number of common factors of a and b. Both the input value should be in a range of 1 to 10^12.

Example:

Input: 10 15
Output: 2

Explanation: The common factors of 10 and 15 are 1 and 5. So the answer will be 2.

Python Code:

data  = input()
li = data.split()

a = int(li[0])
b = int(li[1])

def gcd(a, b):
    if (a == 0): 
        return b; 
    return gcd(b%a, a); 

if (a>0 and a<(10**12+1) and b>=1 and b<(10**12+1)):
    count = 1
    for i in range(2, gcd(a, b)+1):
        if a%i==0 and b%i==0:
            count = count+1
    print(count)

Explanation:

  • We are reading two integers as a single input and then splitting it using the split() method.
  • The function gcd() is to find the greatest common divisor.
  • To know how to find the GCD of two numbers, you can go through the function gcd() which uses recursion technique. It is self-explanatory.

1. Does it Divide?

This problem is asked in the HackerEath contest.

Problem Statement: Consider a permutation of numbers from 1 to N written on a paper. Let’s denote the product of its element as ‘prod’ and the sum of its elements as ‘sum’. Given a positive integer N, your task is to determine whether ‘prod’ is divisible by ‘sum’ or not.

Input Format: First input will be an integer T.  It depicts a number of test cases. Followed by value f0r each test cases. Each test case will contain an integer N (1<= N <=10^9). It is nothing but the length of the permutation.

Output Format: For each test case, print “YEAH” if ‘prod’ is divisible by ‘sum’, otherwise print “NAH”.

Python Code:

testSize = int(input())
nArr=[]
for i in range(1,testSize+1):
    nArr.append(int(input()))

for n in nArr:
    if n>=1 and n<=(10**9):
        prod = 1
        sum = 0
        for i in range(1, n+1):
            prod = prod*i
            sum = sum+i
        if prod%sum==0:
            print("YEAH")
        else:
            print("NAH")

Input:

2 
2 
3

Output:

YEAH
NAH

Explanation:

  • The first input is a number of test cases.
  • Iterate to read all the inputs and store it in the Python list.
  • For each element in the list, calculate prod and sum.
  • Print “YEAH” if the prod is divided by the sum. Otherwise, print “NAH”.

2. Sum of sub-arrays

Cohesity coding question

Python Code:

Cohesity Python coding question

This question is actually asked in Cohesity coding round on Hackerearth.

I hope that this code is self-explanatory.

3. Maximum Profit by buying and selling stocks

This competitive coding question is asked in Goldman Sachs.

Problem Statement: Suppose you have given the stocks prices for respective days like (100, 180, 260, 310, 40, 535, 695). The stock price for the 1st day is 100, 2nd day it is 180 and so on. Write a Python program to determine what days the user should bye and sell the stocks to get the maximum profit.

In the above case, in the following scenarios user will get maximum profit.

  • Buy stock on 1st day (100)
  • Sell stock on 4th day (310)
  • Buy stock on 5th day  (100)
  • Sell stock on 7th day (695)

Algorithm steps:

  • Find the local minima (buying stock)
  • Find local maxima (selling stock)
  • Repeat until all days are covered.

Python Program:


liStocks = [100, 180, 260, 310, 40, 535, 695]

#find local minima
def findMin(liStocks):
    for i, val in enumerate(liStocks[:-1]):
        if val < liStocks[i+1]: 
            return i, val 
    return -1, -1 

#find local maxima 
def findMax(liStocks): 
    for i, val in enumerate(liStocks[:-1]): 
        if val > liStocks[i+1]:
            return i, val
    return i+1, liStocks[-1]



def byeSellStock():
    index=0
    while index < len(liStocks): 
        i, val = findMin(liStocks[index:]) 
        if i > -1:
            index=i+index
            print("bye stock on day ", index+1, val)
        else:
            break
    
        i, val = findMax(liStocks[index:])
        index=i+index
        print("sell stock on day ", index+1, val)


if __name__ == "__main__":
    byeSellStock()

Output:

buy stock on day 1 100
sell stock on day 4 310
bye stock on day 5 40
sell stock on day 7 695

Note: Above program may not have covered all the corner test cases.

Thought…

I will keep adding more Python Competitive Programming Questions for Practice. Also, I explain each Python tutorial.

Follow this page to help yourself and to find some important tips for competitive programming.

coding challengePython
Aniruddha Chaudhari
I am complete Python Nut, love Linux and vim as an editor. I hold Master of Computer Science from NIT Trichy. I dabble in C/C++, Java too. I keep sharing my coding knowledge and my own experience on CSEstack Portal.

Comments

  • Reply
    karan singh bisht
    June 23, 2019 at 11:15 am

    Here is the code I have written for problem 0: Count Common Factor.

    a=int(input("enter first no"))
    b=int(input("enter seconde no"))
    count=0
    if a&gt;b:
            temp=a
    else :
            temp=b
    for i in range (1,temp+1,1):
            if a%i==0 and b%i==0 :
                    count=count+1
    print("input",a,b)
    print("output",count)
    • Reply
      Aniruddha Chaudhari
      September 15, 2019 at 4:54 pm

      Thanks for sharing!

Leave a Reply Cancel reply

Why?

Why Competitive Programming Important?

Coding Challenges for Practice

  1. Count Common Factor
  2. Does it Divide
  3. Sum of Sub Arrays
  4. Max Profit by Buying/Selling Stocks
  5. Secure Conversation by Encry/Decry
  6. Special Elements in Matrix
  7. Next Greater No with Same set of Digits
  8. Smallest Subarray with Sum Greater than Given Number
  9. Group Anagrams
  10. Find Duplicates in Array in O(n)
  11. Find Two Unique Numbers from Array in O(n)
  12. Number Patterns & Finding Smallest Number
  13. Minimum Cost of Merging Files [Amazon]
  14. Minimum Distance for Truck to Deliver Order [Amazon]

© 2019 – CSEstack.org. All Rights Reserved.

  • Home
  • Subscribe
  • Contribute Us
    • Share Your Interview Experience
  • Contact Us
  • About
    • About CSEstack
    • Campus Ambassador
  • Forum & Discus
  • Tools for Geek
  • LeaderBoard