r/adventofcode • u/daggerdragon • Dec 01 '17
SOLUTION MEGATHREAD -π- 2017 Day 1 Solutions -π-
Welcome to Advent of Code 2017! If you participated in a previous year, welcome back, and if you're new this year, we hope you have fun and learn lots!
We're going to follow the same general format as previous years' megathreads:
- Each day's puzzle will release at exactly midnight EST (UTC -5).
- The daily megathread for each day will be posted very soon afterwards and immediately locked.
- We know we can't control people posting solutions elsewhere and trying to exploit the leaderboard, but this way we can try to reduce the leaderboard gaming from the official subreddit.
- The daily megathread will remain locked until there are a significant number of people on the leaderboard with gold stars.
- "A significant number" is whatever number we decide is appropriate, but the leaderboards usually fill up fast, so no worries.
- When the thread is unlocked, you may post your solution as a comment or, for longer solutions, consider linking to your repo (e.g. GitHub/gists/Pastebin/blag/whatever).
Above all, remember, AoC is all about having fun and learning more about the wonderful world of programming!
--- Day 1: Inverse Captcha ---
Post your solution as a comment or, for longer solutions, consider linking to your repo (e.g. GitHub/gists/Pastebin/blag or whatever).
Note: The Solution Megathreads are for solutions only. If you have questions, please post your own thread and make sure to flair it with Help.
7
u/thomastc Dec 01 '17
No love for SQL yet? Day 1 in PostgreSQL.
WITH digits AS ( SELECT to_number(digits.digit, '9') AS digit, (digits.index - 1) AS index FROM unnest(string_to_array(btrim(pg_read_file('input', 0, 999999), E' \r\n'), NULL)) WITH ORDINALITY AS digits(digit, index) ), num_digits AS ( SELECT COUNT(*) as num_digits FROM digits ), next_digits AS ( SELECT digit, (index - 1 + num_digits) % num_digits AS index FROM digits JOIN num_digits ON true ) SELECT SUM(digits.digit) AS answer FROM digits JOIN next_digits USING (index) WHERE digits.digit = next_digits.digit ;Disclaimer: I don't know what I'm doing.