From 318871d679369b8b3d0f046bd90dea6c15bc1467 Mon Sep 17 00:00:00 2001 From: Optioneel Date: Mon, 5 Dec 2022 15:30:45 +0100 Subject: [PATCH] we did it gamers --- bin/Day1.class | Bin 1350 -> 1422 bytes bin/Elf.class | Bin 389 -> 389 bytes bin/SleighFactory.class | Bin 2473 -> 2281 bytes bin/Sleight.class | Bin 1194 -> 1383 bytes src/Day1.java | 75 +++++++++++++++++++++------------------- 5 files changed, 39 insertions(+), 36 deletions(-) diff --git a/bin/Day1.class b/bin/Day1.class index 8ce6b498eac39ccacb5d2e05f377bcd8cf99c1de..f2e19a82c8c4970bb4edc840c89c7a33dff9517e 100644 GIT binary patch delta 611 zcmY+BO-~b16o#KWQ*5V9XlO~Jrs70I+cbVr6kA0_1T5lb@dGPr)d8Edomz&K3pVUD zCT4ztE7!Of6OArixF`Mvcm4sRo|_5@o4NPA?{nXK&fIVDH@)%ie?EN$&hlg<{zau# zHBOGBHc`@gciiR#BSFH*W@3yg>_z8kt>Ja*?n=qgz$p!k1wV|D(IRJ}loZiQ!>unr z_iafXSM)Bs{^b8Nib%GcE9-;jZ7whoOc)2PNv5J)Qlx^nDz#=aOMvOEUhTaY_1$*P8#w(zt(VEQA%SzO&wrMz)Z(=pGp6I zjEcf?YE5so{NHHLljKTvU6^1*qgo4tTAHFFyH(!~-ItZ1-l+P2vkOdVrjrmYAu|o% ze%4LD_iw2@rk_;^Wm$af; z<%yzGOl^ZAl`nav=!3bFIYo-oWXVQOYC7YP;jG}UsFE6b|4lekp0IJir7w7EPTwc4 z_QhO_xe;?GX0%P*YZ3Q_aAsmkB6@ftGDr9E+R6n{<`UWCL?*Z86WxxXa>?|)-`|^( zYL+=8TPw=iU4mp;p3;kAf&refhQV{`S{Og&Gp-1+ IF3{k`A8WyKB>(^b diff --git a/bin/Elf.class b/bin/Elf.class index a5112e461ec275a00a66ccbcd5cff9ce0b4e9de8..6b25ffe2cbfa852d07cac42516fe470d3d014553 100644 GIT binary patch delta 27 jcmZo=Ze`ve$;dg0frVi*11H0j$x4iFjMFD)GRgn|SbPRo delta 27 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 O2>w5W2gDV?*Z%=;?$;pz diff --git a/bin/Sleight.class b/bin/Sleight.class index c7cbc6b67df91bee22ad8dd04c900b2ea1269a8e..c7763bfe5fc287a910183d03bfe7110e915c8f21 100644 GIT binary patch literal 1383 zcmZuvO-~b16g_WduFuHP}BMuH7GMySQ8W*B2 z{0XjbW1?SF%J{F1fc3uu;ewl<>DN6=AiY;k zv2?|`TbN|(zM@^V{YinI%wCCw?3}=%Jww|VGDDkkE0zuwZ3bd!7f>_Vxd=K0I`?3x zBaXHh1iB2gV4pO*4IDrZ>lQ7Jm&{CO8*Fw>U5MZy6G&VZqz&|;pSD@4$b$dVv$tj5 zfPuppB*U8hkZO?Ev_N~wu3FdY%k!2uYtB3LCra*u>CBm)E$z^$`S)z994m#}pj^V{ zM}+Rb^Ve3kYxb9YbK(Asxe{U+9O#;7Sryx=ak6%rGj7eFG9A~WOQ#AW28J=HqZgwF z#w6J|vu0i2bhgt3TIt%cGzvr(Eq1kHt&$;w<@)lhyCM+f)0lGWRW@s>`KHG+T9Yxt z@nJEO3UVsF?AE;n>#8lsk6kv`#zy3-FhE8spQ3;wm%}qcOF=Za$Ds4x@U+5Uq9wTI>|^>Oen^BSSt}dJQsd#G<_Ac<+F+MKCo25kZ{M z1Orr>e@Xl_3uTEeNs^ORc~46TD9N#bdeFWBtcUFdPBamUAwohT2FWoC>*EL{ivsAoU7;sgTfX1i+~sR7K*d0mHUHlt&coF=coX;CDALnnDe5#tb`1 zF;s|tUMHF@-_q5>z(m+BRk^56rq5_^(9Oo{G42#vCWHs)9FT&CZ`FU2{`H8#MxkZ2G@6vH;M1& literal 1194 zcmZuvO-~b16g_Wd%Cu#$wL%d~v3_A&6a>H1hQ#1UNQy2>FuEJsp$v{KPNym)E;KCs z53Y3M#*K+UqKUfpm-s8h^JdzD*i7=?z3-lT-nr+^uRmYE11RFA4n;sOJCk=zQ5Y;inu!s661`(II;|4Mr&c0Ly%ZN5OH)P5;iDQtn{zu1lS4t}8QnUyCC=6bu|;4t_0t&cHXXf(Y!(`mSTjVRKX zHZUXQ#aUZyc&5`S3iR`6KhtOlm51zl)q2UFhebL;b-tYbX%tj68xsLgy&zQNquF041FoG6x+^^sTvc%+r zi+Gl2#w*)GWh5mkNRnrQk%|kf8x$O%!i+95PC(fst)@fh7!)igSee8)S2@fSci9u7 z=ENrkiZ4#O0c`pr0@6@hgkVdjxk$9cCFH=8pfmEN!%VLZFeSQ7mpN!4!y=PHrcCM` z(kV$tyFLWOseM*O@~XbVBmUdHMhtIg!IsaT3^=-WWoT2BH%KE?h%tuOy5eV;N%7(K TZHFblJs>&Um3*BY3U2%bh9cLm diff --git a/src/Day1.java b/src/Day1.java index dcb97de..1593190 100644 --- a/src/Day1.java +++ b/src/Day1.java @@ -1,11 +1,22 @@ import java.util.ArrayList; +//Note 1: //Did you know I can't read??. the way I made it allows for any amount of enters. //this was how ever not part of the asignment ;-;. Now my code is a bit bloated. //can't say I'm to proud of this code but it does work, there is some hacking here at work. //in the method that loads the file I add an extra enter. I know how to fix this, but I am just -//too lazy. so remember to read, don't assume anything; just read!!. +//too lazy. so remember to read, don't assume anything; just read!!. +// +//Note 2: +//the not being able to read continues!. we now do part 2 of the challange, the crying continues. +//I just wanna hack, refactoring isn't fun; why can't I just be lazy ;-;. +// +//Note 3: +//I did it! (not talking about reading, still can't do that) I improved a lot of things. the challange is completed. +//it took whhhaaaayyyy to long, I hope I learned my lesson. on to the next challange. +// +//.p.s. no I did not fix the problem with the enter. public class Day1 { private SleighFactory factory; @@ -20,34 +31,29 @@ public class Day1 { } private void printSleight(Sleight sleight){ - System.out.println("total elfs: "+sleight.getElfs()); - System.out.println("most calories: "+sleight.getGreediest()+" amount: "+sleight.getMostCalories()); for(int i = 0; i < sleight.getElfs(); i++){ System.out.println("["+i+"] calories: "+sleight.getCalories(i)); } + System.out.println("total elfs: "+sleight.getElfs()); + System.out.println("most calories: "+sleight.getGreediest()+" amount: "+sleight.getMostCalories()); + System.out.println("Sum of top 3: "+sleight.getSumTop(3)); } } class SleighFactory { private ArrayList elfs; - private int greediestIndex; public SleighFactory(){ elfs = new ArrayList<>(); - reset(); } public Sleight parse(String file){ parseFile(file); - Sleight newSleight = new Sleight(elfs, greediestIndex); - reset(); + Sleight newSleight = new Sleight(elfs); + elfs.clear(); return newSleight; } - private void reset(){ - greediestIndex = 0; - elfs.clear(); - } private void parseFile(String file){ String currentNumber = ""; @@ -67,40 +73,31 @@ class SleighFactory { } private int calcCalories(String currentNumber, int currentCalories){ - if(currentNumber != ""){ + if(currentNumber != "") return currentCalories + Integer.parseInt(currentNumber); - }else{ + else return newElf(currentCalories); - } } private int newElf(int calories){ - if(calories > 0){ - elfs.add(new Elf(calories)); - if(hasMost(elfs.size() -1) == true){ - greediestIndex = elfs.size() -1; - } - } + if(calories > 0) + insertElf(new Elf(calories)); return 0; } - private boolean hasMost(int elfIndex){ + private void insertElf(Elf newElf){ for(int i = 0; i < elfs.size(); i++){ - if(i != elfIndex){ - if(hasMoreCalories(elfIndex, i) == false){ - return false; - } + if(hasMoreCalories(newElf, elfs.get(i)) == false){ + elfs.add(i, newElf); + return; } } - return true; + elfs.add(newElf); } - private boolean hasMoreCalories(int elfA, int elfB){ - int caloriesA = elfs.get(elfA).getTotalCalories(); - int caloriesB = elfs.get(elfB).getTotalCalories(); - if(caloriesA > caloriesB){ + private boolean hasMoreCalories(Elf elfA, Elf elfB){ + if(elfA.getTotalCalories() > elfB.getTotalCalories()) return true; - } return false; } @@ -108,10 +105,8 @@ class SleighFactory { class Sleight{ private ArrayList elfs; - private int greediest; - public Sleight(ArrayList elfs, int greediest){ - this.greediest = greediest; + public Sleight(ArrayList elfs){ this.elfs = new ArrayList<>(); for(int i = 0; i < elfs.size(); i++){ this.elfs.add(elfs.get(i)); @@ -119,10 +114,10 @@ class Sleight{ } public int getGreediest(){ - return greediest; + return elfs.size() -1; } public int getMostCalories(){ - return elfs.get(greediest).getTotalCalories(); + return elfs.get(getGreediest()).getTotalCalories(); } public int getCalories(int index){ @@ -132,6 +127,14 @@ class Sleight{ return -1; } + public int getSumTop(int elfCount){ + int start = elfs.size() - elfCount; + int sumTotal = 0; + for(int i = start; i < elfs.size(); i++) + sumTotal += elfs.get(i).getTotalCalories(); + return sumTotal; + } + public int getElfs(){ return elfs.size(); }