HackerRank Minimum Time Required problem solution YASH PAL, 31 July 2024 In this HackerRank Minimum Time Required Interview preparation kit problem you need to complete the minimumTimefunction. Problem solution in Python programming. #!/bin/python3 import math import os import random import re import sys # Complete the minTime function below. def minTime(machines, goal): machines, count = sorted(machines), len(machines) min_day = math.ceil(goal / count) * machines[0] max_day = math.ceil(goal / count) * machines[-1] while min_day < max_day: day = (max_day + min_day) // 2 day_sum = sum(day // m for m in machines) if day_sum >= goal: max_day = day else: min_day = day + 1 return min_day if __name__ == '__main__': fptr = open(os.environ['OUTPUT_PATH'], 'w') nGoal = input().split() n = int(nGoal[0]) goal = int(nGoal[1]) machines = list(map(int, input().rstrip().split())) ans = minTime(machines, goal) fptr.write(str(ans) + 'n') fptr.close() Problem solution in Java Programming. import java.io.*; import java.math.*; import java.security.*; import java.text.*; import java.util.*; import java.util.concurrent.*; import java.util.regex.*; public class Solution { static long minTime(long[] machines, long goal) { Arrays.sort(machines); //sort the machine array long max = (machines[machines.length - 1]) * goal; long min = 0; long result = -1; //do a binary tree search while(max > min){ long midValue = (max + min) / 2; long unit = 0; for(long machine : machines){ unit += midValue / machine; } if(unit < goal) { min = midValue + 1; result = midValue + 1; } else { max = midValue; result = midValue; } } return result; } private static final Scanner scanner = new Scanner(System.in); public static void main(String[] args) throws IOException { BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH"))); String[] nGoal = scanner.nextLine().split(" "); int n = Integer.parseInt(nGoal[0]); long goal = Long.parseLong(nGoal[1]); long[] machines = new long[n]; String[] machinesItems = scanner.nextLine().split(" "); scanner.skip("(rn|[nru2028u2029u0085])?"); for (int i = 0; i < n; i++) { long machinesItem = Long.parseLong(machinesItems[i]); machines[i] = machinesItem; } long ans = minTime(machines, goal); bufferedWriter.write(String.valueOf(ans)); bufferedWriter.newLine(); bufferedWriter.close(); scanner.close(); } } Problem solution in C++ programming. #include <bits/stdc++.h> using namespace std; vector<string> split_string(string); // Complete the minTime function below. long minTime(vector<long> machines, long goal) { sort(machines.begin(),machines.end()); long max = machines[machines.size()-1]; long min = machines[0]; long upper = (max * goal)/machines.size(); long lower = (min * goal)/machines.size(); long dia; long produccion; while(upper>lower){ dia = (upper + lower)/2; produccion = 0; for(long i = 0;i<machines.size();i++){ produccion+=dia/machines[i]; } if(goal<= produccion){ upper = dia; }else{ lower= dia +1; } } return lower; } int main() { ofstream fout(getenv("OUTPUT_PATH")); string nGoal_temp; getline(cin, nGoal_temp); vector<string> nGoal = split_string(nGoal_temp); int n = stoi(nGoal[0]); long goal = stol(nGoal[1]); string machines_temp_temp; getline(cin, machines_temp_temp); vector<string> machines_temp = split_string(machines_temp_temp); vector<long> machines(n); for (int i = 0; i < n; i++) { long machines_item = stol(machines_temp[i]); machines[i] = machines_item; } long ans = minTime(machines, goal); fout << ans << "n"; fout.close(); return 0; } vector<string> split_string(string input_string) { string::iterator new_end = unique(input_string.begin(), input_string.end(), [] (const char &x, const char &y) { return x == y and x == ' '; }); input_string.erase(new_end, input_string.end()); while (input_string[input_string.length() - 1] == ' ') { input_string.pop_back(); } vector<string> splits; char delimiter = ' '; size_t i = 0; size_t pos = input_string.find(delimiter); while (pos != string::npos) { splits.push_back(input_string.substr(i, pos - i)); i = pos + 1; pos = input_string.find(delimiter, i); } splits.push_back(input_string.substr(i, min(pos, input_string.length()) - i + 1)); return splits; } coding problems interview prepration kit