Author: Nicholas Prado <nmprado@nzen.ws>
Date: Mon Dec 2 04:16:02 UTC 2019
Parent: fec12b6da7215098d9654d80c2d17252b79f435e
Log message:
Solved day one of 2019
Yay, super easy. Loop over input and apply a simple function.
1: diff --git a/src/java/Exercise19011.java b/src/java/Exercise19011.java
2: new file mode 100644
3: index 0000000..5f7a650
4: --- /dev/null
5: +++ b/src/java/Exercise19011.java
6: @@ -0,0 +1,85 @@
7: +
8: +import java.io.IOException;
9: +import java.nio.file.Files;
10: +import java.nio.file.InvalidPathException;
11: +import java.nio.file.Path;
12: +import java.nio.file.Paths;
13: +import java.util.LinkedList;
14: +import java.util.List;
15: +import java.util.Map;
16: +import java.util.TreeMap;
17: +
18: +public class Exercise19011
19: +{
20: +
21: + public static void main( String args[] )
22: + {
23: + final String here = "e19011.m ";
24: + if ( args.length < 1 )
25: + {
26: + throw new RuntimeException( here +"add a filename argument" );
27: + }
28: + String userSaysFile = args[ 0 ];
29: + List<String> fileLines = new LinkedList<>();
30: + try
31: + {
32: + Path where = Paths.get( userSaysFile );
33: + fileLines = Files.readAllLines( where );
34: + }
35: + catch ( IOException | InvalidPathException ie )
36: + {
37: + System.err.println( here +"couldn't read file "+ userSaysFile +" because "+ ie );
38: + return;
39: + }
40: + /*
41: + - interpretation of spec -
42: + for values in file
43: + total += floor(x / 3) -2
44: + */
45: + long total = 0;
46: + int lineNum = 0;
47: + for ( String line : fileLines )
48: + {
49: + lineNum += 1;
50: + int moduleWeight = 0;
51: + try
52: + {
53: + moduleWeight = Integer.parseInt( line );
54: + }
55: + catch ( NumberFormatException nfe )
56: + {
57: + System.err.println( here +"handed a non int "+ line +" on "+ lineNum +" because "+ nfe );
58: + continue;
59: + }
60: + total += Math.floor( moduleWeight / 3 ) -2;
61: + }
62: + System.out.println( here +"total is "+ total );
63: + }
64: +}
65: +
66: +
67: +
68: +
69: +
70: +
71: +
72: +
73: +
74: +
75: +
76: +
77: +
78: +
79: +
80: +
81: +
82: +
83: +
84: +
85: +
86: +
87: +
88: +
89: +
90: +
91: +
92: diff --git a/src/java/Exercise19012.java b/src/java/Exercise19012.java
93: new file mode 100644
94: index 0000000..150fa11
95: --- /dev/null
96: +++ b/src/java/Exercise19012.java
97: @@ -0,0 +1,96 @@
98: +
99: +import java.io.IOException;
100: +import java.nio.file.Files;
101: +import java.nio.file.InvalidPathException;
102: +import java.nio.file.Path;
103: +import java.nio.file.Paths;
104: +import java.util.LinkedList;
105: +import java.util.List;
106: +import java.util.Map;
107: +import java.util.TreeMap;
108: +
109: +public class Exercise19012
110: +{
111: +
112: + public static void main( String args[] )
113: + {
114: + final String here = "e19011.m ";
115: + if ( args.length < 1 )
116: + {
117: + throw new RuntimeException( here +"add a filename argument" );
118: + }
119: + String userSaysFile = args[ 0 ];
120: + List<String> fileLines = new LinkedList<>();
121: + try
122: + {
123: + Path where = Paths.get( userSaysFile );
124: + fileLines = Files.readAllLines( where );
125: + }
126: + catch ( IOException | InvalidPathException ie )
127: + {
128: + System.err.println( here +"couldn't read file "+ userSaysFile +" because "+ ie );
129: + return;
130: + }
131: + /*
132: + - interpretation of spec -
133: + for values in file
134: + total += floor(x / 3) -2
135: + */
136: + long total = 0;
137: + int lineNum = 0;
138: + for ( String line : fileLines )
139: + {
140: + lineNum += 1;
141: + int moduleWeight = 0;
142: + try
143: + {
144: + moduleWeight = Integer.parseInt( line );
145: + }
146: + catch ( NumberFormatException nfe )
147: + {
148: + System.err.println( here +"handed a non int "+ line +" on "+ lineNum +" because "+ nfe );
149: + continue;
150: + }
151: + int fuelWeight = fuelRequiredFor( moduleWeight );
152: + while ( fuelWeight > 0 )
153: + {
154: + total += fuelWeight;
155: + fuelWeight = fuelRequiredFor( fuelWeight );
156: + }
157: + }
158: + System.out.println( here +"total is "+ total );
159: + }
160: +
161: +
162: + private static int fuelRequiredFor( int mass )
163: + {
164: + return mass /3 -2;
165: + }
166: +}
167: +
168: +
169: +
170: +
171: +
172: +
173: +
174: +
175: +
176: +
177: +
178: +
179: +
180: +
181: +
182: +
183: +
184: +
185: +
186: +
187: +
188: +
189: +
190: +
191: +
192: +
193: +
194: diff --git a/src/res/19_01_input.txt b/src/res/19_01_input.txt
195: new file mode 100644
196: index 0000000..3b18d8c
197: --- /dev/null
198: +++ b/src/res/19_01_input.txt
199: @@ -0,0 +1,100 @@
200: +73365
201: +84016
202: +98122
203: +114871
204: +111575
205: +130294
206: +59341
207: +102810
208: +92986
209: +81275
210: +83155
211: +74530
212: +67858
213: +54107
214: +62099
215: +82535
216: +122085
217: +139127
218: +131939
219: +130125
220: +96285
221: +70572
222: +129325
223: +132261
224: +69597
225: +93574
226: +70089
227: +130711
228: +109220
229: +50155
230: +98250
231: +51054
232: +100028
233: +86985
234: +106638
235: +116993
236: +95130
237: +115571
238: +56707
239: +105988
240: +123358
241: +95470
242: +71094
243: +126310
244: +66153
245: +128788
246: +51605
247: +70044
248: +70180
249: +141905
250: +96494
251: +89332
252: +96688
253: +131936
254: +83782
255: +108218
256: +60650
257: +91289
258: +126406
259: +112939
260: +76303
261: +115774
262: +135382
263: +116478
264: +77898
265: +98611
266: +89155
267: +114878
268: +110085
269: +114482
270: +61585
271: +103480
272: +99198
273: +81082
274: +113501
275: +100167
276: +100085
277: +128747
278: +79731
279: +93289
280: +121516
281: +116380
282: +56592
283: +146611
284: +132595
285: +60483
286: +105828
287: +118923
288: +141972
289: +126450
290: +77214
291: +97406
292: +77745
293: +101982
294: +120919
295: +71085
296: +118300
297: +92440
298: +115184
299: +142447