Python Program for Bank Compare Problem (TCS Codevita) | PrepInsta

Python program for Bank Compare

Bank Compare Problem

Bank Compare problem is one of the real life problem which was asked in TCS CodeVita Season 9 sample questions this year. TCS conducts a global level coding comptetion every year, in which coders from all around the world participate for the title of World’s Best Coder. The difficulty level of this competition is pretty high. Here we have provided you a solution for Bank Compare Problem in Python

Problem Description

Question – : There are two banks – Bank A and Bank B. Their interest rates vary. You have received offers from both banks in terms of the annual rate of interest, tenure, and variations of the rate of interest over the entire tenure.You have to choose the offer which costs you least interest and reject the other. Do the computation and make a wise choice.

The loan repayment happens at a monthly frequency and Equated Monthly Installment (EMI) is calculated using the formula given below :

EMI = loanAmount * monthlyInterestRate / ( 1 – 1 / (1 + monthlyInterestRate)^(numberOfYears * 12))

 

Constraints:

  • 1 <= P <= 1000000
  • 1 <=T <= 50
  • 1<= N1 <= 30
  • 1<= N2 <= 30

 

Input Format:

  • First line: P principal (Loan Amount)
  • Second line: T Total Tenure (in years).
  • Third Line: N1 is the number of slabs of interest rates for a given period by Bank A. First slab starts from the first year and the second slab starts from the end of the first slab and so on.
  • Next N1 line will contain the period  and their interest rate respectively.
  • After N1 lines we will receive N2 viz. the number of slabs offered by the second bank.
  • Next N2 lines are the number of slabs of interest rates for a given period by Bank B. The first slab starts from the first year and the second slab starts from the end of the first slab and so on.
  • The period and rate will be delimited by single white space.

 

Output Format: Your decision either Bank A or Bank B.

 

Explanation:

  • Example 1
    • Input
    • 10000
    • 20
    • 3
    • 5 9.5
    • 10 9.6
    • 5 8.5
    • 3
    • 10 6.9
    • 5 8.5
    • 5 7.9
  • Output: Bank B
  • Example 2
    • Input
    • 500000
    • 26
    • 3
    • 13  9.5
    • 3  6.9
    • 10  5.6
    • 3
    • 14  8.5
    • 6  7.4
    • 6  9.6
  • Output: Bank A

 

Python Code

bank = []
principal = int(input())
year = int(input())
for i in range(0, 2): # 2 Banks
    installments = int(input())
    sum = 0
    for i in range(0, installments):
        time, roi = [float(i) for i in input().split()]
        square = pow((1+roi), time*12)
        emi = (principal*(roi)/(1-1/square))
        sum = sum + emi
    bank.append(sum)
if bank[0] < bank[1]:
    print("Bank A")
else:
    print("Bank B")
Output
10000
20
3
5 9.5
10 9.6
5 8.5
3
10 6.9
5 8.5
5 7.9
Bank B

Bank Compare Problem in Other Coding Languages

C

To find the solution of Bank Compare problem in C Programming language click on the button below:

C

C++

To find the solution of Bank Compare problem in C++ Programming language click on the button below:

C++

Java

To find the solution of Bank Compare problem in Java Programming language click on the button below:

Java

4 comments on “Python Program for Bank Compare Problem (TCS Codevita) | PrepInsta”


  • Vamshi

    p=int(input(‘principle amount is’))
    t=int(input(‘total tenure is’))
    n1=int(input(‘no.of bank1 slabs are’))
    emi1,emi2=0,0
    for a in range(n1):
    ____y,i=map(float,input().split())
    ____emi1+=p*i/(1-1/(1+i)**(y*12))
    n2=int(input(‘no.of bank2 slabs are’))
    for a in range(n2):
    ____y2,i2=map(float,input().split())
    ____emi2+=p*i2/(1-1/(1+i2)**(y2*12))
    if emi1>emi2:
    ____print(‘Bank B’)
    else:
    ____print(‘Bank A’)


  • Ashish

    Alternate code for Above Code:
    bank1 = []
    bank2 = []
    sum = 0
    principal = int(input(“Enter the Principle Amount: “))
    tenure = int(input(“Enter the Tenure: “))
    n1 = int(input(“No. of Slabs for Bank 1 : “))
    for i in range(1, n1+1):
    year = int(input())
    rate = float(input())
    for j in range(year):
    emi = (principal*rate*((1+rate)**tenure))/(((1+rate)**tenure)-1)
    sum = sum + emi

    bank1 = sum

    emi = 0
    sum = 0
    n1 = int(input(“No. of Slabs for Bank 2 : “))
    for i in range(1, n1+1):
    year = int(input())
    rate = float(input())
    for j in range(year):
    emi = (principal*rate*((1+rate)**tenure))/(((1+rate)**tenure)-1)
    sum = sum + emi

    bank2 = sum

    if bank1 > bank2:
    print(“Bank 1”)
    else:
    print(“Bank2”)


    • ANIRBAN BANERJEE

      sum1=0
      sum2=0
      loan=int(input(“enter loan amount “))
      def bankone(p,r):
      global sum1
      global loan
      square = pow((1 + r), p * 12)
      emi = (loan * (r) / (1 – 1 / square))
      sum1 = sum1+emi
      return sum1

      def banktwo(p1,r1):
      global sum2
      global loan
      square = pow((1 + r1), p1 * 12)
      emi = (loan * (r1) / (1 – 1 / square))
      sum2 = sum2 + emi
      return sum2
      #drivers code
      total_years=int(input(“enter total years “))
      n1=int(input(“enter time period for bank 1”))
      for i in range(n1):
      p,r=map(float,input().split())
      bankone(p,r)
      n2=int(input(“enter time period for bank 2 “))
      for j in range(n2):
      p1,r1=map(float,input().split())
      banktwo(p1, r1)
      print(sum1)
      print(sum2)
      if sum1 < sum2:
      print("bank a")
      else:
      print("bank b")