Java BigDecimal

  • + 0 comments
    import java.io.*;
    import java.util.*;
    import java.math.*;
    import java.util.Arrays.*;
    
    class Pair{
        String input;
        BigDecimal value;
        
        public Pair(String input, BigDecimal value){
            this.input = input;
            this.value = value;
        }
    }
    
    public class Solution {
    
        public static List<Pair> quickSort(List<Pair> unsortedList){
            if(unsortedList.size() <= 1)return unsortedList;
            List<Pair> leftList = new ArrayList<Pair>();
            List<Pair> rightList = new ArrayList<Pair>();
            Pair pivot = unsortedList.get(0);
            for(int i = 1; i < unsortedList.size(); i++){
                Pair currentPair = unsortedList.get(i);
                if(currentPair.value.compareTo(pivot.value) > 0)leftList.add(currentPair);
                else rightList.add(currentPair);
            }
            leftList = quickSort(leftList);
            rightList = quickSort(rightList);
            leftList.add(pivot);
            leftList.addAll(rightList);
            return leftList;
        }
    
        public static void main(String[] args) {
            /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            sc.nextLine();
            List<Pair> inputList = new ArrayList<Pair>();
            for(int i = 0; i < n; i++){
                String inputString = sc.nextLine();
                String valueString = inputString;
                if(inputString.charAt(0) == '.')valueString = "0" + inputString;
                BigDecimal value = new BigDecimal(valueString);
                inputList.add(new Pair(inputString, value));
            }
            sc.close();
            inputList = quickSort(inputList);
            for(Pair e : inputList){
                String outputString = e.input;
                System.out.println(outputString);
            }
        }
    }