Advent of Code 2020 Day 18/25 in the Raku programming language

Today there’s a chance to demonstrate powerful features of Raku on the solution of Day 18 of this year’s Advent of Code. The task is to print the sum of a list of expressions with +, *, and parentheses, but the precedence of the operations is equal in the first part of the problem, and … Continue reading “Advent of Code 2020 Day 18/25 in the Raku programming language”

Advent of Code 2020 Day 12.1/25 in the Raku programming language

Here is my solution of the first part of Day 12 of this year’s Advent of Code. The point in this solution is that I use multi functions a lot. Well, actually, the whole logic of the program is based on the dispatching rules of the variants of a single multi function. We start with … Continue reading “Advent of Code 2020 Day 12.1/25 in the Raku programming language”

Advent of Code 2020 Day 9/25 in the Raku programming language

Day 9 of Advent of Code is here and the task is the following. Take a list of numbers and find the first one, which is not the sum of two of the 25 preceding numbers. my $window = 25; my @data = ‘input.txt’.IO.lines.map: *.Int; say @data[($window ..^ @data).first({ @data[$_] != any(@data[$_ – $window ..^ … Continue reading “Advent of Code 2020 Day 9/25 in the Raku programming language”

Advent of Code 2020 Day 8/25 in the Raku programming language

Here is Day 8 of Advent of Code 2020. Today, we are building a program to read an execute programs in the assembly language. Well, a very limited assembly with only three opcodes and one register, accumulator. nop +0 acc +1 jmp +4 acc +3 jmp -3 acc -99 acc +1 jmp -4 acc +6 … Continue reading “Advent of Code 2020 Day 8/25 in the Raku programming language”

Advent of Code 2020 Day 7/25 in the Raku programming language

Let’l look at Day 7 of this year’s Advent of Code. This day’s problem is about handling luggage at the airport. There are some rules like these: As you see, the rules dictate how you can put bags into other bags. The only characteristics of the bag is its colour. For example, if the bag … Continue reading “Advent of Code 2020 Day 7/25 in the Raku programming language”

Advent of Code 2020 Day 6/25 in the Raku programming language

The task of Day 6 is to count letters :-). Well, not that straightforward. There’s some input like this split into groups and lines: abc a b c ab ac We have to count how many times each letter enters in each group. Again, the original task is more storyline-type and you’d better read it … Continue reading “Advent of Code 2020 Day 6/25 in the Raku programming language”

Advent of Code 2020 Day 5/25 in the Raku programming language

On Day 5, they gave a task to find a seat number in a place. We have a list of occupied seats in a special form. Long story short, the rows and the seats within the row are encoded binary, but instead of 0 and 1, letters are used: F and B for rows and … Continue reading “Advent of Code 2020 Day 5/25 in the Raku programming language”

Advent of Code 2020 Day 4/25 in the Raku programming language

In Day 4 of the Advent of Code, we are checking the fields of the passports. For each passport, there are a few fields labelled with a three-letter codes: byr (Birth Year) iyr (Issue Year) eyr (Expiration Year) hgt (Height) hcl (Hair Color) ecl (Eye Color) pid (Passport ID) cid (Country ID) The full record for a single passport contains colon-separated pairs key:value: … Continue reading “Advent of Code 2020 Day 4/25 in the Raku programming language”

Advent of Code 2020 Day 3/25 in the Raku programming language

In Day 3, we have to walk through the forest that is mapped in the following way: ..##……. #…#…#.. .#….#..#. ..#.#…#.# .#…##..#. ..#.##….. .#.#.#….# This pattern is repeated horizontally as many times as needed. In a single step, we can make three moves cells and one row down. It is also OK to pass through … Continue reading “Advent of Code 2020 Day 3/25 in the Raku programming language”

Advent of Code 2020 Day 2/25 in the Raku programming language

Here is my Raku solution to the problem of Day 2 of this year’s Advent of Code. The problem is to check if the passwords satisfy the requirement which is mentioned before the password: The phrase 1-3 a means that the character a must appear one to three times in the password, not fewer nor … Continue reading “Advent of Code 2020 Day 2/25 in the Raku programming language”

Advent of Code 2020 Day 1/25 in the Raku programming language

OK, I solved a few days of the on-going this year’s Advent of Code, so maybe it is a good idea to document it a bit so that those who like Raku can look at it too. So, the problem of Day 1 is to take a long list of integers and find such two … Continue reading “Advent of Code 2020 Day 1/25 in the Raku programming language”