aboutsummaryrefslogtreecommitdiff
path: root/aoc2022/day-06
diff options
context:
space:
mode:
authorH.J <thechairman@thechairman.info>2024-10-09 11:36:55 -0400
committerH.J <thechairman@thechairman.info>2024-10-09 11:36:55 -0400
commit8777ff071f7bb37631baa7b6717ad29961e50911 (patch)
tree6d59c4ed58e454b960339c3d1151f0a879e8d7cb /aoc2022/day-06
parent6156a9ef7be4012063a042aafb4e9b0d7eadde8e (diff)
downloadgleam_aoc-8777ff071f7bb37631baa7b6717ad29961e50911.tar.gz
gleam_aoc-8777ff071f7bb37631baa7b6717ad29961e50911.zip
sorting by language
Diffstat (limited to 'aoc2022/day-06')
-rw-r--r--aoc2022/day-06/day-06.ipynb122
-rw-r--r--aoc2022/day-06/day-06.rkt22
2 files changed, 0 insertions, 144 deletions
diff --git a/aoc2022/day-06/day-06.ipynb b/aoc2022/day-06/day-06.ipynb
deleted file mode 100644
index 0c89fa1..0000000
--- a/aoc2022/day-06/day-06.ipynb
+++ /dev/null
@@ -1,122 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Advent of Code 2022\n",
- "#### Day 6: Tuning Trouble\n",
- "\n",
- "You're parsing a buffer of characters, looking for a \"marker\": the index of the first character where the previous $n$ characters are all unique.\n",
- "\n",
- "**Part 1.** What if $n = 4$, for the \"start of packet\" marker?\n",
- "\n",
- "**Part 2.** What if $n = 14$, for the \"start of message\" marker?"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [],
- "source": [
- "(require racket\n",
- " advent-of-code\n",
- " (only-in algorithms sliding))\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "##### Parts 1 and 2\n",
- "\n",
- "`(sliding xs n)` returns all the overlapping sublists of `xs` that are `n` elements wide. This turns this problem into a simple `for` comprehension, just looking for the first sublist with no duplicates (which means its length after deduplication doesn't change).\n",
- "\n",
- "The solution to part 1 and part 2 is the same, just differing in how wide the window is."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "<code>1042</code>"
- ],
- "text/plain": [
- "1042"
- ]
- },
- "execution_count": 2,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "(define buffer (fetch-aoc-input (find-session) 2022 6))\n",
- "\n",
- "(define (find-marker data type)\n",
- " (define n\n",
- " (match type\n",
- " ['start-of-packet 4]\n",
- " ['start-of-message 14]))\n",
- " (for/first ([chunk (in-list (sliding (string->list data) n))]\n",
- " [i (in-naturals n)]\n",
- " #:when (= n (~> chunk remove-duplicates length)))\n",
- " i))\n",
- "\n",
- "(find-marker buffer 'start-of-packet)\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "<code>2980</code>"
- ],
- "text/plain": [
- "2980"
- ]
- },
- "execution_count": 3,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "(find-marker buffer 'start-of-message)"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Racket (trusted)",
- "language": "racket",
- "name": "racket-trusted"
- },
- "language_info": {
- "codemirror_mode": "scheme",
- "file_extension": ".rkt",
- "mimetype": "text/x-racket",
- "name": "racket",
- "pygments_lexer": "racket",
- "version": "8.7"
- },
- "orig_nbformat": 4,
- "vscode": {
- "interpreter": {
- "hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1"
- }
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/aoc2022/day-06/day-06.rkt b/aoc2022/day-06/day-06.rkt
deleted file mode 100644
index 1c167a6..0000000
--- a/aoc2022/day-06/day-06.rkt
+++ /dev/null
@@ -1,22 +0,0 @@
-#lang racket
-
-(require advent-of-code
- (only-in algorithms sliding))
-
-(define buffer (fetch-aoc-input (find-session) 2022 6))
-
-(define (find-marker data type)
- (define n
- (case type
- [(start-of-packet) 4]
- [(start-of-message) 14]))
- (for/first ([chunk (in-list (sliding (string->list data) n))]
- [i (in-naturals n)]
- #:unless (check-duplicates chunk))
- i))
-
-;; part 1
-(find-marker buffer 'start-of-packet)
-
-;; part 2
-(find-marker buffer 'start-of-message)