Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

popular sim transfer #723

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
163 changes: 163 additions & 0 deletions Advanced/sim_transfer_circle Question
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@


## Problem Statement

Create class Sim with below attributes:
simId - int
customerName - String
balance - double
ratePerSecond - double
circle - String

Create class Solution and implement static method "transferCircle" in the Solution class.
This method will take array of Sim objects, circle1 String and circle2 string as parameters.
And will return another Sim array where the circle1 matches with the circle parameter of the original Sim array and the circle parameter of the new array is set to circle2 and is also sorted by means of ratePerSecond attribute in desending order.

Write necessary getters and setters.

Before calling "transferCircle" method in the main method, read values for four Sim objects referring the attributes in above sequence along with a String circlee1 and circle2.
Then call the "transferCircle" method and write logic in main method to print all the attributes of the result obtained.

## Input

1
raju
130
1.32
mum
2
sachin
120
2.26
ahd
3
ram
200
2.54
kol
4
shubham
640
3.21
ahd
5
kalpesh
150
1.8
ahd
ahd
kol

## Output

4 shubham kol 3.21
2 sachin kol 2.26
5 kalpesh kol 1.8





### Solution



import java.util.Arrays;
import java.util.Scanner;

public class Solution{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
Sim[] sim = new Sim[5];
for(int i = 0;i < 5;i++){
int simId = sc.nextInt();
sc.nextLine();
String customerName = sc.nextLine();
double balance = sc.nextDouble();
double ratePerSecond = sc.nextDouble();
sc.nextLine();
String circle = sc.nextLine();
sim[i] = new Sim(simId,customerName,balance,ratePerSecond,circle);
}
String circle1 = sc.nextLine();
String circle2 = sc.nextLine();
sc.close();
Sim[] result = transferCircle(sim,circle1,circle2);
for(int i = 0;i < result.length;i++){
System.out.println(result[i].getSimId() +" "+ result[i].getCustomerName() +" "+ result[i].getCircle() +" "+ result[i].getRatePerSecond());
}
}
public static Sim[] transferCircle(Sim[] sim,String circle1,String circle2){
Sim[] refined = new Sim[0];
for(int i=0;i<5;i++){
if(sim[i].getCircle().equals(circle1)){
refined=Arrays.copyOf(refined,refined.length+1);
refined[refined.length-1]=sim[i];
refined[refined.length-1].setCircle(circle2);
}
}
for(int i=0;i<refined.length-1;i++){
for(int j=0;j<refined.length-1-i;j++){
if(refined[j].getRatePerSecond()<refined[j+1].getRatePerSecond())
{
Sim temp=refined[j];
refined[j]=refined[j+1];
refined[j+1]=temp;
}
}
}
return refined;
}
}
class Sim{
int simId;
String customerName;
double balance;
double ratePerSecond;
String circle;

public int getSimId(){
return simId;
}
public String getCustomerName(){
return customerName;
}
public double getBalance(){
return balance;
}
public double getRatePerSecond(){
return ratePerSecond;
}
public String getCircle(){
return circle;
}
public void setCircle(String circle){
this.circle=circle;
}
Sim(int simId,String customerName,double balance, double ratePerSecond,String circle){
this.simId = simId;
this.ratePerSecond = ratePerSecond;
this.customerName = customerName;
this.circle = circle;
this.balance=balance;
}
}