Organizing Containers of Balls

  • + 0 comments
    public static String organizingContainers(List<List<Integer>> container) {
    // Write your code here
    		List<Integer> colorSum = new ArrayList<>();
    		List<Integer> containerSum = new ArrayList<>(); 
    
    		Collections.sort(container, Comparator.comparing(list -> list.stream().reduce(0, (a, b) -> a + b)));
    
    		for (int i = 0; i < container.size(); i++) { 
    				int sum = 0;  
    				for (int j = 0; j < container.get(i).size(); j++) { 
    						sum += container.get(i).get(j); 
    						if (colorSum.size() == j) {
    								colorSum.add(container.get(i).get(j)); 
    						}
    						else { 
    								colorSum.set(j, colorSum.get(j) + container.get(i).get(j));
    						} 
    				} 
    				containerSum.add(sum);  
    		}  
    
    		Collections.sort(containerSum); 
    		Collections.sort(colorSum);  
    
    		if (!containerSum.equals(colorSum)) {
    				return "Impossible"; 
    		}
    
    		return "Possible"; 
    }