# AoC 2016 Day 7: IPv7 Support Counter

### Source: Internet Protocol Version 7

Part 1: The input is a list of strings, potentially containing sequences in square brackets. Find all strings that have an ABBA sequence (two characters followed by the same two in reverse order) outside of any square brackets, but no ABBA sequences in square brackets.

# AoC 2016 Day 6: Signal Unjammer

### Source: Signals and Noise

Part 1: Given a list of strings, find the most common character in each position.

# AoC 2016 Day 5: Password Cracker

### Source: How About a Nice Game of Chess?

Part 1: Generate a series of hashes: MD5(salt + index). For each hash starting with five zeros, write down the sixth character.

# AoC 2016 Day 4: Room Validator

### Source: Security Through Obscurity1

Part 1: A room is described as a name, a sector ID, and a checksum as follows:

aaaaa-bbb-z-y-x-123[abxyz]

name: aaaaa-bbb-z-y-x sector ID: 123 checksum: abxyz

# AoC 2016 Day 3: Triangle Validator

### Source: Squares With Three Sides

Part 1: Given a list of sides, determine how many form valid triangles. (Hint: triangle inequality)

# AoC 2016 Day 2: Pin Typer

### Source: Bathroom Security

Part 1: Take a keypad with the following layout:

1 2 3 4 5 6 7 8 9

# AoC 2016 Day 1: Taxicab Simulator

### Source: No Time for a Taxicab

Part 1: Starting at 0,0 and given a string of L# / R# to turn left / right and move # squares, where do you end up?

# Advent of Code: Day 25

Source

Part 1: Take the relation:

F(n) = \left\{\begin{matrix} 20151225 & \textrm{if}\ n = 1 \\ 252533F(n-1) \mod 33554393 & \textrm{otherwise} \end{matrix}\right.

Arrange the values according to Cantor's diagonal argument. Find the value at a specific cell.

# Advent of Code: Day 24

Source

Part 1: Split a list of integers into three groups of equal sum. Find the grouping such that the smallest group has the least items, breaking ties by the smallest product for that group.

# Advent of Code: Day 23

Source

Part 1: Create a simple virtual machine with two registers (a and b, non-negative integers) and six instructions:

• hlf (a|b) - divide the given register by half, round down
• tpl (a|b) - triple the given register
• inc (a|b) - add 1 to the given register
• jmp [+-]\d+ - jump forward/backwards by the given number of instructions
• jie (a|b), [+-]\d+ - if the given register is even, jump
• jio (a|b), [+-]\d+ - if the given register equals one, jump