Résultat du défi : Les 100.000 boites

Bonsoir,

Les Golgoths ont décidé de clore le premier défi, qui n’était en réalité qu’une introduction.. aux autres défis qu’ils vous réservent, enfin, vous le verrez dans les prochaines semaines.

Déjà, un grand bravo, à tous les participants ! Les golgoths sont fiers d’avoir eu autant de volontaires dès la première épreuve.

Le défi consistait donc à calculer le volume des boites, puis à trier la liste, de sorte que la plus grosse boite se trouve directement au bout de la liste.

Voici, une des participation, parmi les autres que vous pouvez retrouver sur le forum

La participation de pseudocode en java :

   1: import java.io.FileReader;
   2: import java.io.FileWriter;
   3: import java.util.ArrayList;
   4: import java.util.Collections;
   5: import java.util.Comparator;
   6:  
   7: public class Test {
   8:  
   9:     static class Box {
  10:         int x,y,z,volume;
  11:         public Box(int x, int y, int z) {
  12:             this.x=x; this.y=y; this.z=z;
  13:             this.volume=x*y*z;
  14:         }
  15:         public String toString() {
  16:             return this.x+,+this.y+,+this.z;
  17:         }
  18:     }
  19:     
  20:     public static void main(String[] args) throws Exception {
  21:         ArrayListBox> list = new ArrayListBox>();
  22:         
  23:         // read file and insert into list
  24:         FileReader reader = new FileReader(box.txt);
  25:         while(reader.ready()) {
  26:             int x=0,y=0,z=0,d;
  27:             while((d=reader.read())!=',') x=10*x+(d-'0');
  28:             while((d=reader.read())!=',') y=10*y+(d-'0');
  29:             while((d=reader.read())!=';') z=10*z+(d-'0');
  30:             list.add(new Box(x, y, z));
  31:         }
  32:         reader.close();
  33:  
  34:         // sort the list
  35:         Collections.sort(list, new ComparatorBox>() {
  36:             public int compare(Box b1, Box b2) { return b1.volume-b2.volume; }
  37:         });
  38:  
  39:         // write the sorted list to file
  40:         FileWriter writer = new FileWriter(sorted.txt);
  41:         for(Box box:list)
  42:             writer.append(box.toString()).append(';');
  43:         writer.close();
  44:     }
  45: }

Encore un grand merci, à tous les participants, qui je l’espère seront là pour le prochain défi !

Laisser un commentaire