41 lines
No EOL
2.6 KiB
Text
41 lines
No EOL
2.6 KiB
Text
\--- Day 7: Internet Protocol Version 7 ---
|
|
----------
|
|
|
|
While snooping around the local network of EBHQ, you compile a list of [IP addresses](https://en.wikipedia.org/wiki/IP_address) (they're IPv7, of course; [IPv6](https://en.wikipedia.org/wiki/IPv6) is much too limited). You'd like to figure out which IPs support *TLS* (transport-layer snooping).
|
|
|
|
An IP supports TLS if it has an Autonomous Bridge Bypass Annotation, or *ABBA*. An ABBA is any four-character sequence which consists of a pair of two different characters followed by the reverse of that pair, such as `xyyx` or `abba`. However, the IP also must not have an ABBA within any hypernet sequences, which are contained by *square brackets*.
|
|
|
|
For example:
|
|
|
|
* `abba[mnop]qrst` supports TLS (`abba` outside square brackets).
|
|
* `abcd[bddb]xyyx` does *not* support TLS (`bddb` is within square brackets, even though `xyyx` is outside square brackets).
|
|
* `aaaa[qwer]tyui` does *not* support TLS (`aaaa` is invalid; the interior characters must be different).
|
|
* `ioxxoj[asdfgh]zxcvbn` supports TLS (`oxxo` is outside square brackets, even though it's within a larger string).
|
|
|
|
*How many IPs* in your puzzle input support TLS?
|
|
|
|
Your puzzle answer was `115`.
|
|
|
|
\--- Part Two ---
|
|
----------
|
|
|
|
You would also like to know which IPs support *SSL* (super-secret listening).
|
|
|
|
An IP supports SSL if it has an Area-Broadcast Accessor, or *ABA*, anywhere in the supernet sequences (outside any square bracketed sections), and a corresponding Byte Allocation Block, or *BAB*, anywhere in the hypernet sequences. An ABA is any three-character sequence which consists of the same character twice with a different character between them, such as `xyx` or `aba`. A corresponding BAB is the same characters but in reversed positions: `yxy` and `bab`, respectively.
|
|
|
|
For example:
|
|
|
|
* `aba[bab]xyz` supports SSL (`aba` outside square brackets with corresponding `bab` within square brackets).
|
|
* `xyx[xyx]xyx` does *not* support SSL (`xyx`, but no corresponding `yxy`).
|
|
* `aaa[kek]eke` supports SSL (`eke` in supernet with corresponding `kek` in hypernet; the `aaa` sequence is not related, because the interior character must be different).
|
|
* `zazbz[bzb]cdb` supports SSL (`zaz` has no corresponding `aza`, but `zbz` has a corresponding `bzb`, even though `zaz` and `zbz` overlap).
|
|
|
|
*How many IPs* in your puzzle input support SSL?
|
|
|
|
Your puzzle answer was `231`.
|
|
|
|
Both parts of this puzzle are complete! They provide two gold stars: \*\*
|
|
|
|
At this point, all that is left is for you to [admire your Advent calendar](/2016).
|
|
|
|
If you still want to see it, you can [get your puzzle input](7/input). |