forward N
, down N
, and up N
that move forward, increase depth, and decrease depth in that order. Calculate the product of the final position and depth.Been a while since I’ve done an advent of code! I’ll probably backfill a few years eventually, but for now, let’s just write some code!
As always, these problems are wonderful to try to solve yourself. If you agree, stop reading now. This post isn’t going anywhere.
If you’d like to see the full form of any particular solution, you can do so on GitHub (including previous years and possibly some I haven’t written up yet): jpverkamp/advent-of-code
I recently came across a problem where I had a single image with a transparent background containing multiple images that I wanted to split into their component parts. For example, split this:
Into these:
A quick script.
I play a lot of board games. With the whole COVID-19 mess, I’ve been playing a lot on Board Game Arena, which is a wonderful site. But one thing that’s a bit lacking is having ratings / metadata about games to great games I’ve just not heard about before. Where can you get lots of that data? Board Game Geek!
The problem though, is merging the two. So, how do we do it? Well, this time around, I’m going to start with this GeekList that someone else maintains of BGA games on BGG. Which has the games, but no ranks. And apparently there are no ways to rank those by BGG (for some reason). But that’s easy when you know a bit of scripting!
I’ve been working through the r/Fantasy 2021 Book Bingo this year:
Hard Mode ✓ Five SFF Short Stories Any short story as long as there are five of them. Hard Mode: Read an entire SFF anthology or collection. | by R.F. Kuang Hard Mode ✓ Set in Asia Any book set in Asia or an analogous fantasy setting that is based on a real-world Asian setting. Hard Mode: Written by an Asian author. | Hard Mode ✓ A Selection from the r/Fantasy A to Z Genre Guide Any book listed in our A to Z Genre Guide. Hard Mode: A book by a BIPOC author. | by T.J. Klune Hard Mode ✓ Found Family Or as TV Tropes calls it - Family of Choice. Often not biologically related, these relationships in a group typically form through bonds of shared experiences and become as important (in some cases more) as family members. Hard Mode: Featuring an LGBTQ+ character as a member of the found family. | Hard Mode ✓ First Person POV Defined as: a literary style in which the narrative is told from the perspective of a narrator speaking directly about themselves. Link for examples. Hard Mode: There is more than one perspective, but each perspective is written in First Person. |
Book Club OR Readalong Book Any past or active r/Fantasy book clubs count as well as past or active r/Fantasy readalongs. See our full list of book clubs here. Hard Mode: Must read a current selection of either a book club or readalong and participate in the discussion. | by Mary Norton Hard Mode ✓ New to You Author This would be an author whose work you’ve yet to read, meaning no novel, no novella, no short fiction, etc. Hard Mode: Not only have you never read their work before but you’ve not heard much about this author or their work before deciding to try a book by them. | Hard Mode ✓ Gothic Fantasy Gothic Fantasy is similar to Gothic Fiction but it includes fantasy elements or settings. Gothic Fiction is “a style of writing that is characterized by elements of fear, horror, death, and gloom, as well as romantic elements, such as nature, individuality, and very high emotion. These emotions can include fear and suspense.” (Source) Here is a good ‘introductory post’ on Gothic Fantasy for further reading from Book Riot. Hard Mode: NOT one of the ten titles listed in the Book Riot article. | by Warren Ellis Hard Mode ✓ Backlist Book For our purposes we’re considering ‘backlist’ an author’s older titles that are not their latest published book or part of a currently running series (no further sequels announced when you read it). The author must also be a currently publishing author. Hard Mode: Published before the year 2000. | Hard Mode ✓ Revenge-Seeking Character Book has a character whose main motivation in the story is revenge. Hard Mode: Revenge is central to the plot of the entire book. |
by Mur Lafferty Hard Mode ✓ Mystery Plot The main plot of the book centers around solving a mystery. Hard Mode: Not a primary world Urban Fantasy (secondary world urban fantasy is okay!) | Hard Mode ✓ Comfort Read This is one of those ‘personal to you’ squares. Any book that brings you comfort while reading it. You can use a reread on this square and it WON’T count for your ‘1 reread’. Hard Mode: Don’t use a reread, find a brand new comfort read! | Hard Mode ✓ Published in 2021 A book published for the first time in 2021 (no reprints or new editions). Hard Mode: It’s also a debut novel–as in it’s the author’s first published novel. | by Jamie Delano Hard Mode ✓ Cat Squasher: 500+ Pages Time to go tome hunting–find a book that is over 500 pages in length. Hard Mode: Lion Squasher - a book that is over 800 pages. | Hard Mode ✓ SFF-Related Nonfiction Back by popular demand! Any nonfiction book that is related to SFF. Could be a book about the history of something in SFF, writing SFF, essays from a SFF writer, etc. Hard Mode: Published within the last five years. |
by Kaela Rivera Hard Mode ✓ Latinx or Latin American Author Author is from Latin America or of Latinx/Hispanic heritage. Hard Mode: Book has fewer than 1000 Goodreads ratings. | by R.S. Craig Hard Mode ✓ Self-Published Only self-published novels will count for this square. If the novel has been picked up by a publisher as long as you read it when it was self-pubbed it will still count. Hard Mode: Self-pubbed and has fewer than 50 ratings on Goodreads. | Hard Mode ✓ Forest Setting This setting must be used be for a good portion of the book. Hard Mode: The entire book takes place in this setting. | by Tamsyn Muir Hard Mode ✓ Genre Mashup A book that utilizes major elements from two or more genres. Examples: a romance set in a fantasy world, a book that combines science fiction and fantasy, etc. Hard Mode: Three or more genres are combined. | by Matt Haig Hard Mode ✓ Has Chapter Titles A book where each chapter has a title (other than numbers or just a character’s name). Hard Mode: Chapter title is more than a single word FOR EVERY SINGLE CHAPTER |
Hard Mode ✓ Title: _____ of _____ The title of the book must feature the format X of Y. Example: The Harp of Kings by Juliet Marillier. Hard Mode: _____ of ______ and ________. Format of title must be X of Y and Z. | by Andy Weir Hard Mode ✓ First Contact From Wikipedia: Science Fiction about the first meeting between humans and extraterrestrial life, or of any sentient species’ first encounter with another one, given they are from different planets or natural satellites. Hard Mode: War does not break out as a result of contact. | Trans or Nonbinary Character A book featuring a trans or nonbinary character that isn’t an alien or a robot. Hard Mode: This character is a main protagonist. | Hard Mode ✓ Debut Author An author’s debut novel or novella. Hard Mode: The author has participated in an AMA. AMA List linked here. | by Libba Bray Hard Mode ✓ Witches A book featuring witches. Note - characters practicing what is traditionally in their culture referred to as witchcraft would also count. For example brujos or brujas would count for this square. Hard Mode: A witch is a main protagonist. |
Any short story as long as there are five of them.
Hard Mode: Read an entire SFF anthology or collection.
Any book set in Asia or an analogous fantasy setting that is based on a real-world Asian setting.
Hard Mode: Written by an Asian author.
Any book listed in our A to Z Genre Guide.
Hard Mode: A book by a BIPOC author.
Or as TV Tropes calls it - Family of Choice. Often not biologically related, these relationships in a group typically form through bonds of shared experiences and become as important (in some cases more) as family members.
Hard Mode: Featuring an LGBTQ+ character as a member of the found family.
Defined as: a literary style in which the narrative is told from the perspective of a narrator speaking directly about themselves. Link for examples.
Hard Mode: There is more than one perspective, but each perspective is written in First Person.
Any past or active r/Fantasy book clubs count as well as past or active r/Fantasy readalongs. See our full list of book clubs here.
Hard Mode: Must read a current selection of either a book club or readalong and participate in the discussion.
This would be an author whose work you’ve yet to read, meaning no novel, no novella, no short fiction, etc.
Hard Mode: Not only have you never read their work before but you’ve not heard much about this author or their work before deciding to try a book by them.
Gothic Fantasy is similar to Gothic Fiction but it includes fantasy elements or settings. Gothic Fiction is “a style of writing that is characterized by elements of fear, horror, death, and gloom, as well as romantic elements, such as nature, individuality, and very high emotion. These emotions can include fear and suspense.” (Source) Here is a good ‘introductory post’ on Gothic Fantasy for further reading from Book Riot.
Hard Mode: NOT one of the ten titles listed in the Book Riot article.
For our purposes we’re considering ‘backlist’ an author’s older titles that are not their latest published book or part of a currently running series (no further sequels announced when you read it). The author must also be a currently publishing author.
Hard Mode: Published before the year 2000.
Book has a character whose main motivation in the story is revenge.
Hard Mode: Revenge is central to the plot of the entire book.
The main plot of the book centers around solving a mystery.
Hard Mode: Not a primary world Urban Fantasy (secondary world urban fantasy is okay!)
This is one of those ‘personal to you’ squares. Any book that brings you comfort while reading it. You can use a reread on this square and it WON’T count for your ‘1 reread’.
Hard Mode: Don’t use a reread, find a brand new comfort read!
A book published for the first time in 2021 (no reprints or new editions).
Hard Mode: It’s also a debut novel–as in it’s the author’s first published novel.
Time to go tome hunting–find a book that is over 500 pages in length.
Hard Mode: Lion Squasher - a book that is over 800 pages.
Back by popular demand! Any nonfiction book that is related to SFF. Could be a book about the history of something in SFF, writing SFF, essays from a SFF writer, etc.
Hard Mode: Published within the last five years.
Author is from Latin America or of Latinx/Hispanic heritage.
Hard Mode: Book has fewer than 1000 Goodreads ratings.
Only self-published novels will count for this square. If the novel has been picked up by a publisher as long as you read it when it was self-pubbed it will still count.
Hard Mode: Self-pubbed and has fewer than 50 ratings on Goodreads.
This setting must be used be for a good portion of the book.
Hard Mode: The entire book takes place in this setting.
A book that utilizes major elements from two or more genres. Examples: a romance set in a fantasy world, a book that combines science fiction and fantasy, etc.
Hard Mode: Three or more genres are combined.
A book where each chapter has a title (other than numbers or just a character’s name).
Hard Mode: Chapter title is more than a single word FOR EVERY SINGLE CHAPTER
The title of the book must feature the format X of Y. Example: The Harp of Kings by Juliet Marillier.
Hard Mode: _____ of ______ and ________. Format of title must be X of Y and Z.
From Wikipedia: Science Fiction about the first meeting between humans and extraterrestrial life, or of any sentient species’ first encounter with another one, given they are from different planets or natural satellites.
Hard Mode: War does not break out as a result of contact.
A book featuring a trans or nonbinary character that isn’t an alien or a robot.
Hard Mode: This character is a main protagonist.
An author’s debut novel or novella.
Hard Mode: The author has participated in an AMA. AMA List linked here.
A book featuring witches. Note - characters practicing what is traditionally in their culture referred to as witchcraft would also count. For example brujos or brujas would count for this square.
Hard Mode: A witch is a main protagonist.
One more fairly standard tech interview problem (for better or for worse, you’re likely to see one of these if you go for a programming job):
Given a linked list and an element
x
. Partition the list so that all elements less thanx
are before elements greater than or equal tox
, but do not otherwise change the order of the elements.
Working through a few problems on LeetCode. I haven’t quite decided what I think of the site, but it’s a fun way to play with simple algorithms. Figured I might as well write up any I find interesting.
First interesting problem:
Given a standard lettered keypad, generate all words from a given phone number.