khrisparrales

Day 2 Adventofcode 2021

Dec 3rd, 2021
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Day 2 JavaScript
  2. formatting the code here on reddit is a bummer
  3.  
  4. //leer txt
  5. var datos = [];
  6. var fs = require("fs");
  7. var data = fs.readFileSync("input2.txt", "utf8");
  8. data = data.trim();
  9. datos = data.split(/\n/);
  10. //convertir los datos a String
  11. for (let i = 0; i < datos.length; i++) {
  12. let str = datos[i];
  13. str = String(str);
  14. datos[i] = str;
  15. }
  16. function day2part1(input) {
  17. //crear objeto vacio
  18. var obj = {
  19. forward: 0,
  20. down: 0,
  21. up: 0,
  22. };
  23. //recorrer objeto y sumar los valores de cada direccion en el objeto
  24. for (let i = 0; i < input.length; i++) {
  25. let str = input[i];
  26. let str2 = str.split(" ");
  27. let key = str2[0];
  28. let num = Number(str2[1]);
  29. obj[key] += num;
  30. }
  31. //calcular la distancia total del objeto
  32. return obj.forward * Math.abs(obj.down - obj.up);
  33. }
  34. console.log(day2part1(datos));
  35. function day2part2(input) {
  36. let obj3 = { h: 0, aim: 0, d: 0 };
  37. for (let i = 0; i < input.length; i++) {
  38. let str = input[i];
  39. let str2 = str.split(" ");
  40. let key = str2[0];
  41. let num = Number(str2[1]);
  42. if (key == "forward") {
  43. cf(num, obj3);
  44. } else if (key == "down") {
  45. cd(num, obj3);
  46. } else if (key == "up") {
  47. cu(num, obj3);
  48. }
  49. }
  50. return obj3.h * obj3.d;
  51. }
  52. function cf(x, objeto) {
  53. let ph = objeto.h + x;
  54. let pd = objeto.d;
  55. let d = pd + objeto.aim * x;
  56. // return { ph, d };
  57. objeto.h = ph;
  58. objeto.d = d;
  59. }
  60. console.log(day2part2(datos));
  61. function cd(x, objeto) {
  62. objeto.aim = objeto.aim + x;
  63. }
  64. function cu(x, objeto) {
  65. objeto.aim = objeto.aim - x;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment