diff --git a/HackerRank/Electronics_Shop.java b/HackerRank/Electronics_Shop.java new file mode 100644 index 0000000..9ba1a4f --- /dev/null +++ b/HackerRank/Electronics_Shop.java @@ -0,0 +1,82 @@ +/* Problem Link : https://www.hackerrank.com/challenges/electronics-shop/problem */ + +import java.io.*; +import java.util.*; + + +public class Solution { + + /* + * getMoneySpent function to get the total money spent + */ + + static int getMoneySpent(int[] keyboards, int[] drives, int b) { + HashMap ans = new HashMap<>(); + for (int i = 0; i < keyboards.length; i++) { + for (int j = 0; j < drives.length; j++) { + if (keyboards[i] + drives[j] <= b) { + ans.put((keyboards[i] + drives[j]), true); + } + } + } + int max = -1; + if (!ans.isEmpty()) { + for (Integer val : ans.keySet()) { + if (val > max) { + max = val; + } + } + + } + return max; + } + + 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[] bnm = scanner.nextLine().split(" "); + scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])*"); + + int b = Integer.parseInt(bnm[0]); + + int n = Integer.parseInt(bnm[1]); + + int m = Integer.parseInt(bnm[2]); + + int[] keyboards = new int[n]; + + String[] keyboardsItems = scanner.nextLine().split(" "); + scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])*"); + + for (int keyboardsItr = 0; keyboardsItr < n; keyboardsItr++) { + int keyboardsItem = Integer.parseInt(keyboardsItems[keyboardsItr]); + keyboards[keyboardsItr] = keyboardsItem; + } + + int[] drives = new int[m]; + + String[] drivesItems = scanner.nextLine().split(" "); + scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])*"); + + for (int drivesItr = 0; drivesItr < m; drivesItr++) { + int drivesItem = Integer.parseInt(drivesItems[drivesItr]); + drives[drivesItr] = drivesItem; + } + + /* + * The maximum amount of money she can spend on a keyboard and USB + * drive, or -1 if she can't purchase both items. + */ + + int moneySpent = getMoneySpent(keyboards, drives, b); + + bufferedWriter.write(String.valueOf(moneySpent)); + bufferedWriter.newLine(); + + bufferedWriter.close(); + + scanner.close(); + } +} diff --git a/LeetCode/AsteroidCollision.java b/LeetCode/AsteroidCollision.java new file mode 100644 index 0000000..5ca6424 --- /dev/null +++ b/LeetCode/AsteroidCollision.java @@ -0,0 +1,50 @@ +/* Problem link : https://leetcode.com/problems/asteroid-collision/ */ + +import java.util.*; + +class Solution { + public int[] asteroidCollision(int[] asteroids) { + + + Stack stack=new Stack<>(); + for(int i=0;i 0) || (stack.peek() < 0 && asteroids[i] > 0 )) + { + stack.push(asteroids[i]); + + } + else + { while(!stack.isEmpty() && stack.peek()*asteroids[i] < 0 ){ + int sp=Math.abs(stack.peek()); + int ap=Math.abs(asteroids[i]); + if(sp > ap) + { + break; + } + else if(sp < ap) + { + stack.pop(); + if(stack.isEmpty() || stack.peek()*asteroids[i] > 0) + { + stack.push(asteroids[i]); + } + } + else + { stack.pop(); + break; + } + } + } + } + + int [] arr=new int[stack.size()]; + int j=0; + while(!stack.isEmpty()) + { + arr[stack.size()-j-1]= stack.peek(); + stack.pop(); + } + return arr; + } + }