Advertisement
khisby

Job Assignment Java

Oct 14th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.57 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package jobassignment;
  7.  
  8. import java.util.ArrayList;
  9.  
  10. /**
  11.  *
  12.  * @author Whoami
  13.  */
  14. public class JobAssignment {
  15.  
  16.    
  17.     public ArrayList<String> performPermutations(String s){
  18.         ArrayList<String> arrayList;
  19.         arrayList = new ArrayList<>();
  20.         if(s == null){
  21.             return null;
  22.         }else if(s.length() == 0){
  23.             arrayList.add("");
  24.             return arrayList;
  25.         }else{
  26.             for(int i = 0; i< s.length(); i++){
  27.                 ArrayList<String> remaining = performPermutations(s.substring(0,i)+ s.substring(i + 1));
  28.                 for(int j = 0; j < remaining.size(); j++){
  29.                     arrayList.add(s.charAt(i) + remaining.get(j));
  30.                 }
  31.             }
  32.             return arrayList;
  33.         }
  34.     }
  35.    
  36.     public static int[] konversi(String a){
  37.         int[]ind=new int[a.length()];
  38.         for(int i = 0; i < a.length(); i++){
  39.             switch (a.charAt(i)) {
  40.                 case '1':
  41.                     ind[i]=1;
  42.                     break;
  43.                 case '2':
  44.                     ind[i]=2;
  45.                     break;
  46.                 case '3':
  47.                     ind[i]=3;
  48.                     break;
  49.                 case '4':
  50.                     ind[i]=4;
  51.                     break;
  52.                 default:
  53.                     ind[i]=5;
  54.                     break;
  55.             }
  56.         }
  57.         return ind;
  58.     }
  59.    
  60.     /**
  61.      * @param args the command line arguments
  62.      */
  63.     public static void main(String[] args) {
  64.         int [][]data = {{5,7,4,3},{10,9,7,6},{2,4,5,3},{3,1,2,3}};
  65.         JobAssignment p = new JobAssignment();
  66.         ArrayList<String> arr = p.performPermutations("1234");
  67.        
  68.         int kecil = 1000;
  69.         String benar = arr.get(0);
  70.         for(int i = 0; i < arr.size(); i++){
  71.             String a = arr.get(i);
  72.             int []ind = konversi(a);
  73.             int nData = (ind.length);
  74.             int total = 0;
  75.            
  76.             for(int j=0;j<nData;j++){
  77.                 int z=ind[j]-1;
  78.                 total=total+data[z][j];
  79.             }
  80.            
  81.             if(kecil>total){
  82.                 kecil = total;
  83.                 benar = a;
  84.             }
  85.            
  86.         }
  87.         System.out.println("Urutan pekerja = " + benar);
  88.         System.out.println("Cost total pekerjaan= " + kecil);
  89.        
  90.     }
  91.    
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement