Reputation: 100
My code works well for samples and other examples I tried on my IDE but it doesn't work for the test case for some reason. I don't know how to use arrays as we haven't yet covered them in class and I wanted to see if I could solve it with just loops and if-else. Any help is appreciated.
Here's the description of the problem:
Problem There are N houses for sale. The i-th house costs Ai dollars to buy. You have a budget of B dollars to spend.
What is the maximum number of houses you can buy?
Input The first line of the input gives the number of test cases, T. T test cases follow. Each test case begins with a single line containing the two integers N and B. The second line contains N integers. The i-th integer is Ai, the cost of the i-th house.
Output For each test case, output one line containing Case #x: y, where x is the test case number (starting from 1) and y is the maximum number of houses you can buy.
Limits Time limit: 15 seconds per test set. Memory limit: 1GB. 1 ≤ T ≤ 100. 1 ≤ B ≤ 105. 1 ≤ Ai ≤ 1000, for all i. Test set 1 1 ≤ N ≤ 100. Test set 2 1 ≤ N ≤ 105. Sample
Input
Output
3 4 100 20 90 40 90 4 50 30 30 10 10 3 300 999 999 999
Case #1: 2 Case #2: 3 Case #3: 0
In Sample Case #1, you have a budget of 100 dollars. You can buy the 1st and 3rd houses for 20 + 40 = 60 dollars. In Sample Case #2, you have a budget of 50 dollars. You can buy the 1st, 3rd and 4th houses for 30 + 10 + 10 = 50 dollars. In Sample Case #3, you have a budget of 300 dollars. You cannot buy any houses (so the answer is 0).
Here's my code:
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int testCases;
int numberHouses;
int budget;
int costHouse;
int howMany = 0;
int totalCost;
testCases = sc.nextInt();
//loop for each test case
for (int i=0; i < testCases; i++) {
numberHouses = sc.nextInt();
budget = sc.nextInt();
howMany = 0;
totalCost = 0;
//loop for looking at house prices
for (int j=0; j < numberHouses; j++) {
costHouse = sc.nextInt();
totalCost += costHouse;
if ( totalCost <= budget ) {
howMany++;
}
else {
totalCost -= costHouse;
}
}
System.out.println("Case #"+ (i+1) + ": " + howMany);
}
}
}
Upvotes: 0
Views: 453