Enjoy the detours!

adventOfTypescript

Typescript

https://toot.cafe/@danbruegge/113587602136584312

I solved this one “early” in the morning. This one, was also a no-brainer.

Code

https://toot.cafe/@danbruegge/113588572520140901

This was a nice and fast one. I always enjoy playing with Regexp. Only Part 2 gave me a struggle, because of my thought process. I tend to do things much more complicated than they should be. :D

Here is a little example:

export function getDoMulCalls(input: string): any {
  const startRe = /^(.*?)don\'t\(\)/g;
  const middleRe = /do\(\)(.*?)don\'t\(\)/g;
  const endRe = /do\(\)(.*?)$/g;

  const startDos = Array.from(input.matchAll(startRe), match => match[1]);
  const middleDos = Array.from(input.matchAll(middleRe), match => match[1]);
  const endDos = Array.from(input.matchAll(endRe), match => match[1]).filter(endDo => !endDo.includes("don't()"));

  return [...startDos, ...middleDos, ...endDos].map(getMulCalls).flat();
}

This will not give you the solution to Part 2. I thought this was simple and clever at the same time. But I needed to start fresh and remove the cleverness from the code. Bonus, I've learned something new with JavaScript and Regexp. :)


47 of #100DaysToOffload

#log #adventOfCode #adventOfTypescript

Thoughts? Discuss...

Right on time. Sadly, this post is on the next day, but I've completed both challenges before midnight. :D

Code 2024

https://toot.cafe/@danbruegge/113585692081934453

Part 2 gave me a real struggle. I just got it by luck and think that my original solution is still right, provided all the information there was on the page. Out of desperation, I have thrown my solution for Part 2 overboard and decided to try a different approach. It makes sense. But if you compare it with the information on that page, it makes less to no sense. Until this point, I've had a lot of fun and hopefully the challenge tomorrow is not easier, but the information on the page tells everything you need to know.

Typescript 2024

https://toot.cafe/@danbruegge/113585716545107593

Like Day 1, this one a no-brainer. But I remember from last year, it gets more difficult by each day.

Conclusion

For AoC Day 2, Part 2, I took too much time into the solution. Because it was not obvious. But...mimimi. :D


46 of #100DaysToOffload

#log #adventOfCode #adventOfTypescript

Thoughts? Discuss...

In 2023, I've participated in the Advent of Typescript for 8 Days. Currently, I don't understand why I didn't continue with it because it made a lot of fun. This year, I've resolved to complete as much as I can in Advent of Typescript, but also to join the Advent of Code 2024 and do here also as much as I can.

Code 2024

https://adventofcode.com/2024

For the Advent of Code 2024, I've decided to make it plain and simple with vite + typescript. To do more Test Driven Development, I will first write a test and add the code after.

https://toot.cafe/@danbruegge/113577659265521768

Typescript 2024

https://www.adventofts.com/

Visually, Advent of Typescript looks really nice. They let you write and test your types inside the browser, which makes writing there quite satisfying.

https://toot.cafe/@danbruegge/113577755016361905

Conclusion

I'll have set up a git repository, which I update after each Day is done. After the Advent of … is done, I'll publish the repo on GitHub.

Day 1 for both was basic. Let's see how the other days will be. I'm looking forward to that, they will be challenging, and I will learn a ton of new stuff.


45 of #100DaysToOffload

#log #adventOfCode #adventOfTypescript

Thoughts? Discuss...