Sunday 27 March 2022

Minimum Number of cars

A group of friends is going on holiday together. They have to come a meeting point(the start of the journey) using N cars. There are P[K] people and S[K] seats in the K-th car for K in range [0 .. N-1]. Some of the seats in the cars may be free, so it is possible for some of the friends to change the car they are in. The friends have decided in order to be ecological, they will leave some cars parked at the meeting point and travel with as few cars as possible.  


Given to arrays P and S, consisting of N integers each, returns the minimum number of cars needed to take all of the friends on holiday.


Example:


1. Given P = [1,4,1] and S = [1, 5, 1], the function should return 2. A person from car number 0 can travel in car number 1 instead. This way, car number 0 can be left parked at the meeting point.


2. Given P = [4,4,2,4] and S = [5,5,2,5], the function should return 3. One person from car number 2 can travel in car number 0 and the other person from car number 2 can travel in car number 3.


3. Given P = [2,3,4,2] and S = [2,5,7,2], the function should return 2. Passengers from car number 0 can travel in car number 1 and passengers from car number 3 can travel in car number 2.


Write an efficient algorithm for the following assumptions:


class Solution {
  public int solution(int []P, int[] S) {
     Arrays.sort(S);
     int sum = 0;
     for(int people: P) sum += people;
     S = descending(S);
     int total = 0;
      int i;
      for(i = 0;  i < S.length && seatSum < sum; i++) {   
        seatSum += S[i]; 
      }    
    return i;
  }
} };


What did I learn today?

Welcome to the what did I learn today series. The intention of this blog spot is to compose the stuff that I learnt day-to-day basics and jo...