Day one solutions
This commit is contained in:
		
							
								
								
									
										102
									
								
								01/code.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								01/code.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,102 @@ | ||||
| const fs = require('fs'); | ||||
|  | ||||
| // const inputArray = fs.readFileSync('sample.txt').toString().split("\n"); | ||||
| let inputArray = fs.readFileSync('input.txt').toString().split("\n"); | ||||
| let allInts = []; | ||||
| let sum = 0; | ||||
|  | ||||
| // Part One | ||||
|  | ||||
| for (i in inputArray) { | ||||
|   const forwards = inputArray[i]; | ||||
|   const backwards = inputArray[i].split("").reverse().join(""); | ||||
|   let firstInt; | ||||
|   let lastInt; | ||||
|   for (j in forwards) { | ||||
|     if (parseInt(forwards[j])) { | ||||
|       firstInt = parseInt(forwards[j]); | ||||
|       break; | ||||
|     } | ||||
|   } | ||||
|   for (j in backwards) { | ||||
|     if (parseInt(backwards[j])) { | ||||
|       lastInt = parseInt(backwards[j]); | ||||
|       break; | ||||
|     } | ||||
|   } | ||||
|   allInts.push(parseInt(`${firstInt}${lastInt}`)); | ||||
| } | ||||
|  | ||||
| sum = allInts.reduce((a, b) => a + b, 0); | ||||
|  | ||||
| console.log(sum); | ||||
|  | ||||
|  | ||||
| // Part Two | ||||
|  | ||||
| // inputArray = fs.readFileSync('sample2.txt').toString().split("\n"); | ||||
| allInts = []; | ||||
|  | ||||
| for (i in inputArray) { | ||||
|   let forwards = inputArray[i]; | ||||
|   let needsParsed = true; | ||||
|   while (needsParsed) { | ||||
|     for (j in forwards) { | ||||
|       if (forwards[j] === "o" && forwards.substring(j,parseInt(parseInt(j)+parseInt(3))) === "one") { | ||||
|         forwards = forwards.substring(0, j) + "1" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); | ||||
|         break; | ||||
|       } else if (forwards[j] === "t" && forwards.substring(j,parseInt(parseInt(j)+parseInt(3))) === "two") { | ||||
|         forwards = forwards.substring(0, j) + "2" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); | ||||
|         break; | ||||
|       } else if (forwards[j] === "t" && forwards.substring(j,parseInt(parseInt(j)+parseInt(5))) === "three") { | ||||
|         forwards = forwards.substring(0, j) + "3" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); | ||||
|         break; | ||||
|       } else if (forwards[j] === "f" && forwards.substring(j,parseInt(parseInt(j)+parseInt(4))) === "four") { | ||||
|         forwards = forwards.substring(0, j) + "4" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); | ||||
|         break; | ||||
|       } else if (forwards[j] === "f" && forwards.substring(j,parseInt(parseInt(j)+parseInt(4))) === "five") { | ||||
|         forwards = forwards.substring(0, j) + "5" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); | ||||
|         break; | ||||
|       } else if (forwards[j] === "s" && forwards.substring(j,parseInt(parseInt(j)+parseInt(3))) === "six") { | ||||
|         forwards = forwards.substring(0, j) + "6" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); | ||||
|         break; | ||||
|       } else if (forwards[j] === "s" && forwards.substring(j,parseInt(parseInt(j)+parseInt(5))) === "seven") { | ||||
|         forwards = forwards.substring(0, j) + "7" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); | ||||
|         break; | ||||
|       } else if (forwards[j] === "e" && forwards.substring(j,parseInt(parseInt(j)+parseInt(5))) === "eight") { | ||||
|         forwards = forwards.substring(0, j) + "8" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); | ||||
|         break; | ||||
|       } else if (forwards[j] === "n" && forwards.substring(j,parseInt(parseInt(j)+parseInt(4))) === "nine") { | ||||
|         forwards = forwards.substring(0, j) + "9" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); | ||||
|         break; | ||||
|       } else if (parseInt(j) === forwards.length - 1) { | ||||
|         needsParsed = false; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   backwards = forwards.split("").reverse().join(""); | ||||
|  | ||||
|   let firstInt; | ||||
|   let lastInt; | ||||
|   for (j in forwards) { | ||||
|     if (parseInt(forwards[j])) { | ||||
|       firstInt = parseInt(forwards[j]); | ||||
|       break; | ||||
|     } | ||||
|   } | ||||
|   for (j in backwards) { | ||||
|     if (parseInt(backwards[j])) { | ||||
|       lastInt = parseInt(backwards[j]); | ||||
|       break; | ||||
|     } | ||||
|   } | ||||
|   allInts.push(parseInt(`${firstInt}${lastInt}`)); | ||||
| } | ||||
|  | ||||
| sum = allInts.reduce((a, b) => a + b, 0); | ||||
|  | ||||
| console.log(sum); | ||||
|  | ||||
| // functions | ||||
|  | ||||
							
								
								
									
										1000
									
								
								01/input.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1000
									
								
								01/input.txt
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										4
									
								
								01/sample.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								01/sample.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| 1abc2 | ||||
| pqr3stu8vwx | ||||
| a1b2c3d4e5f | ||||
| treb7uchet | ||||
							
								
								
									
										7
									
								
								01/sample2.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								01/sample2.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| two1nine | ||||
| eightwothree | ||||
| abcone2threexyz | ||||
| xtwone3four | ||||
| 4nineeightseven2 | ||||
| zoneight234 | ||||
| 7pqrstsixteen | ||||
		Reference in New Issue
	
	Block a user