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