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