#advent-of-code

1 messages · Page 45 of 1

loud yew
#

||part one: 'we will give you most of the stuff, its just couning' part 2: "make a thing to automaticaly determine how to count things"||

mossy stream
#

what da heck is today's puzzle

terse comet
#

it is fun

devout tusk
#

YAY

terse comet
#

almost definitely harder than the previous days, but that's to be expected at this point

#

part 1 is trivial, but part 2 requires some planning :p

mossy stream
#

alright, so the first ten combinations on each line are here to help you figure out what is the wire mapping, and you only count the last four digits when calculating the output?

terse comet
#

yeah

woven sable
#

Agh

mossy stream
#

I see

#

hmm

#

wait, part 1 is free?

terse comet
#

quite much

#

part 2 is what you expect though

mossy stream
#

I see

hazy pendant
ruby epoch
#

Day 8 is really simple?

#

I was thinking after 4 I'd skip 5 and go to 6, but in that case, I might do 8 before 6

sonic silo
#

day 8 isnt simple

ruby epoch
#

Ouch, ok

#

6 is the one where ||you have to do 80 iterations for part 1 and 256 for part 2||, right?

sonic silo
#

yea

sonic silo
#

tbf day 6 aint that bad

#

||like theres at least 3 or 4 ways to improve the solution to something that can be computed||

ruby epoch
#

I haven't tried it yet, but I did hear that doing it in the most obvious way will just result in overflow errors, so I need to make sure I bounce of some folks to get this right

#

Meanwhile, I need to knock out day 4 first, I've only just started

torpid karma
#

Just want to make sure but for day 8 part 2 the 7-segment they give you in the example would be different for each line of the input?

rotund rapids
#

Yes

#

You can basically throw out what you had for other lines bc it doesn’t matter except result

torpid karma
#

OK thanks

mossy stream
#

I have no idea what I am doing lmao

wooden jewel
#

insert jpeg of dog here

woven oriole
#

seems like welsh people dont use numbers

#

👀

mossy stream
#

Here is my algo so far for part 2:
||1. Run a loop for every possible mapping of each number to an actual 7-segments number||
||2. For each of those numbers, constraint the segments that makes it to only the output segments that made the number||
||3. If each segment is constrained to a single other segment, we won||

#

I don't know if the technique or the implementation is faulty

#

Actually

#

7! = 5040

#

it isn't that hard to bruteforce

peak dock
mossy stream
#

For real

#

How does this shit work

humble copper
#

lets go

#

this was actually fun to do

#

difficult but fun

mossy stream
#

Alright, my algorithm only works on edge cases

#

For real, are you supposed to be able to solve that without a constraint solver?

sleek lark
#

@mossy stream Have you tried to use part 1 ?

livid gull
#

Is there a python leaderboard json parser?

woven oriole
#

aoc provides the api

#

.src aoc

livid gull
#

ive gotten the json file, just trying to parse it

mossy basin
wooden jewel
mossy stream
#

I mean I guess I can guess the top digit easily using the first part

placid lake
#

wow

mossy stream
#

That's as far as I can get

livid gull
mossy basin
#

yep

mossy stream
#

and wtf salt you are insulting me at that point

mossy basin
#

in python and in my terminal

woven oriole
mossy stream
#

I don't like you salt

mossy basin
#

not yet

mossy stream
#

Also please add some sound effects

mossy basin
woven oriole
mossy stream
#

Yes

#

I am probably thinking about it the wrong way

worldly grove
mossy stream
#

Through little deduction
I don't know if this is an euphemism or if I'm really over complicating things

sleek lark
#

@mossy stream Try making relationships between numbers

mossy basin
worldly grove
mossy basin
tacit sandal
#

man i really enjoyed day 8, a nice combo of thinking and coding

warm grail
#

yeahh

mossy basin
#

i spent several hours trying to figure out how to implement a back-tracker for it, but since the order of the digits can change it gets complicated

topaz summit
#

i had a cipher solver sitting around, but it doesnt work without the order

mossy basin
#

if you make an array like:

# a b c
  1 1 0  # 0
  0 1 0  # 1
  0 0 1  # 2

but for the segments and digits, call it A
then you can try to solve:

P @ A @ Q = B

where P and Q are permutation matrices

#

but i didn't discover any tricks to solving this way, only brute force

loud yew
mossy basin
#

my initial solution was brute force, i did make a smarter version

#

was trying to finish fast though, which was not very successful

digital ember
mossy stream
#

Alright, so non bruteforcy solutions aren't that trivial

peak dock
#

yeah lol they definitely arent trivial

dusk ibex
#

this is a call for help :')

#

I do not get what even the questions asks in part 1

#

day 8

#

can anyone help?

#

pls

hollow wharf
#

!aoc

marsh currentBOT
#

Calling vs. Referencing functions

When assigning a new name to a function, storing it in a container, or passing it as an argument, a common mistake made is to call the function. Instead of getting the actual function, you'll get its return value.

In Python you can treat function names just like any other variable. Assume there was a function called now that returns the current time. If you did x = now(), the current time would be assigned to x, but if you did x = now, the function now itself would be assigned to x. x and now would both equally reference the function.

Examples

# assigning new name

def foo():
    return 'bar'

def spam():
    return 'eggs'

baz = foo
baz() # returns 'bar'

ham = spam
ham() # returns 'eggs'
# storing in container

import math
functions = [math.sqrt, math.factorial, math.log]
functions[0](25) # returns 5.0
# the above equivalent to math.sqrt(25)
# passing as argument

class C:
    builtin_open = staticmethod(open)

# open function is passed
# to the staticmethod class
minor cave
hidden copperBOT
#
Command Help

**```
.adventofcode

**Can also use:** `aoc`

*All of the Advent of Code commands.*

**Subcommands:**
**`about `**
*Learn about Advent of Code*
**`countdown `**
*Return time left until next day*
**`dayandstar [maximum_scorers_day_and_star=10]`**
*Get a view that lets you filter the leaderboard by day and star*
**`global `**
*Get a link to the global leaderboard*
**`join `**
*Learn how to join the leaderboard (via DM)*
**`leaderboard [aoc_name]`**
*Get a snapshot of the PyDis private AoC leaderboard*
**`link [aoc_name]`**
*Tie your Discord account with your Advent of Code name.*
**`stats `**
*Get daily statistics for the Python Discord leaderboard*
**`subscribe `**
*Notifications for new days*
hollow wharf
#

thanku

dusk ibex
woven oriole
#

solve the problem of not understanding the problem

dusk ibex
#

thx and will do! 👍

hollow wharf
#

what da heck am I looking at

woven oriole
#

akarys

hollow wharf
#

his code is.. interesting lmao

#

I mean the new version is fine

#

but lmao what is this commented out code

woven oriole
#

where is the code smh

hollow wharf
#

but we haven't pushed day 8 yet

#

CTRL+A, DEL

woven oriole
#

day6part2

#

for a second i thought you are really printing the day at which the code finished executing

#

lmfao

woven solar
#

appropriate

hollow wharf
#

lmao

#

is that the naive implementation

woven solar
#

seems to be

hollow wharf
#

It took like 20s at the 120th iteration, after which I killed it

#

I'll time a full run in the background out of curiosity

minor cave
woven oriole
#

aye aye captain

hollow wharf
#

yes ma'am

#

is it fine with a spoiler tag @minor cave ?

craggy wraith
#

im finally done

#

my code is like 144 lines long though

wooden jewel
#

Also more lines != worse

hollow wharf
#

wait

#

oh lol it got killed by the OS I think

#

on day 166

#

after taking 890s to compute a single day

#

I don't know how much ram this VM has

#

4 or 8 GB I think

wooden jewel
#

Someone calculated that you need at least 700GB of ram to do that solution naively

#

So no big surprise there :P

woven solar
restive imp
#

I have the most convoluted solution for part 2 today, and it doesn't even work yet 😦

wooden jewel
#

It was a best-case scenario :P

woven solar
#

good point; 780GB RAM then

#

that's only 5 times what eivl apparently has 🥴

wooden jewel
#

hehe

#

I also have access to a 256 gig box, but it's a bit overkill for these challenges :P

hollow wharf
#

anyone mind explaining to me what the day 8 part 2 is asking me for?

#

that's the most difficult part of these for me, getting specifically what its asking

#
Adding all of the output values in this larger example produces 61229.

For each entry, determine all of the wire/segment connections and decode the four-digit output values. What do you get if you add up all of the output values?
#

like it says that

#

but here's part of the example

#
fdgacbe cefdb cefbgd gcbe: 8394
fcgedb cgb dgebacf gc: 9781
cg cg fdcagb cbg: 1197
efabcd cedba gadfec cb: 9361
#

so is each one an individual number

#

or

#

how does that work

woven solar
#

yes, each word is a digit

hollow wharf
#

ohhhh

#

mkmk

#

that makes a lot more sense lol

#

gotta remove spaces-

#

yeah i'm dumb, lol

hollow wharf
#

woof I just got part 2

#

that was tough

#

||recursion|| always feels like magic

woven sable
hollow wharf
#

||I don't think it's optimal but it's kinda cool||

woven sable
hollow wharf
woven sable
#

Ohhh

#

Alright

onyx gulch
#

.aoc

#

.aoc about

hidden copperBOT
#
What is Advent of Code?

Advent of Code (AoC) is a series of small programming puzzles for a variety of skill levels, run every year during the month of December.

They are self-contained and are just as appropriate for an expert who wants to stay sharp as they are for a beginner who is just learning to code. Each puzzle calls upon different skills and has two parts that build on a theme.

How do I sign up?

Sign up with one of these services:

Auth Services

GitHub
Google
Twitter
Reddit

How does scoring work?

For the global leaderboard, the first person to get a star first gets 100 points, the second person gets 99 points, and so on down to 1 point at 100th place.

For private leaderboards, the first person to get a star gets N points, where N is the number of people on the leaderboard. The second person to get the star gets N-1 points and so on and so forth.

Join our private leaderboard!

Come join the Python Discord private leaderboard and compete against other people in the community! Get the join code using .aoc join and visit the private leaderboard page to join our leaderboard.

restive imp
#

Yes, finally... done for today

marble minnow
#

Anyone kind to explain what I have to do in the day 8 part 1?

restive imp
#

Count the occurrence unique digits (1, 4, 7, 8) @marble minnow

marble minnow
#

yeah, would be great

unique osprey
#

Not sure if you guys saw it, but day 7 input is a valid intcode program:

C:\scratch\AdventOfCode>py scratch.py
Ceci n'est pas une intcode program

Done
#

neat little 🥚

sonic silo
#

wtf

#

you meant like

#

the sample input?

unique osprey
woven solar
#

post in in the subreddit for some free karma, if noone did yet

unique osprey
#

i think everyone's starts with the same intcode program

#

then it's just unused junk memory after that

unique osprey
woven solar
#

ah

unique osprey
#

I wonder if there's any other easter eggs that would require some sort of code to reveal

#

...just so i can bake it into my aoc framework

sleek cave
#

unoptimized solution (||you probably actually simulated lanternfish using a list||): a few hours to days, given 12 or 20 TB of memory
optimized solution: about a second

woven solar
#

I'll have you know the unoptimized solution can be done in as little as 780GB of memory!

#

12TB if using a list though, yes.

sleek cave
woven solar
#

all you'll need is to represent each fish as half a byte

sleek cave
#

oh wait, memory not storage

woven solar
#

yeah. Well, of course you could use a memory-mapped file 🥴

#

that'll extend the time to weeks, though, probably.

sleek cave
#

weeks-

#

this just shows how astounding the difference is between an unoptimized algorithm and an optimized one

woven solar
#

actually, good question, how long will it take... assuming you can read at 20MB/s, it'll take you around 39 000s for each read of the list in the later days

sleek cave
#

i wrote two ||recursive functions|| and i even tested 512, works in a second

#

with a normal list, it'll probably take months

#

or maybe even years

#

or decades

#

wait no

woven solar
#

so we can roughly estimate the time as ~50 hours hmm, hold on, is that right...

sleek cave
#

exponential growth - it'll take thousands of years

#

also i love this star icon lol

woven solar
#

in other words, if you have a 1TB hard drive, you can totally solve part2 the naive way in only 3 days!

sleek cave
#

bruh today's puzzle is hard to comprehend

woven solar
#

relatable

woven sable
#

turns out all that text was just for quite an easy P1

hollow wharf
#

Hopefully today’s problem is a bit more straightforward lol

woven sable
#

right after frying my brain

sleek cave
#

satisfying input

hollow wharf
woven sable
#

Hoping tomorrow is something nicer

#

I spent half my class time in school working on AOC so it was quite brain frying

hollow wharf
#

Ahahaha

#

Yeah today’s took my multiple hours

sleek cave
#

um part one is way too easy i'm scared

#

i still have homework to do i can only spare two more hours

#

BRO NO WAY

#

||I WAS PRAYING FOR AOC TO NOT THROW ME A PUZZLE WHERE I HAVE TO AUTOMATE DEDUCTION|| (minor spoilers for pt 2)

#

AHHHHHHHHH

woven sable
sleek cave
hollow wharf
# woven sable ||good idea!||

||i tried doing a thing where i checked the values in whatever string evaluated to 1, eg: dg and then checking if that was in a string of length five, this should result in the number 3, because the values in 1, dg must be present in 3, but sometimes it returned empty? why the hecc is that?||

woven sable
hollow wharf
#

ok

rancid creek
#

so that you don't construct the list each time:

next(e for e in mylist if e)
pliant comet
#

are the 10 things on the left of the pipe always numbers 0 to 9?

#

(ik that they're shuffled, but does it always have 0 to 9?)

hidden musk
#

that wasn't a real number lol

hazy pendant
#

ah crap

#

imma spoiler

#

how i understand part2

pliant comet
#

ty

sleek cave
#

god i use too many sets for part 2 lmao

#

never in my life have i found such abundance usage of sets until now

hidden musk
#

how fitting, there's only one s because the emojis are a set!

pliant comet
#

what about the gold shiny bags last year 😳

hidden musk
#

~~you mean shiny gold 😔 ~~

rancid creek
sleek cave
#

fun stats: my most used import statement (besides from a get input helper module) in this event is from collections import Counter

#

it's just so useful

hidden musk
#

⭐ 👜

rancid creek
hidden musk
#

how do i pronounce your name? zelf?

#

ex elf?

rancid creek
#

I used to be a public figure for a company where I was (name of company)_elf, after I left I became xelf.

#

so, to me it's ex-elf. 🙂

minor cave
#

I don't think I'm meant to brute force day 7... yet here I am :)

low condor
#

Part 1 I managed not to brute force... just

#

Part 2 ... not so much lol. I was close to an efficient solution, but not close enough, so I did the brute force

pliant comet
pliant comet
#

ah ok

#

i was just confused because i don't see how you could not brute force part 1 but then brute force part 2 lol

rancid creek
woven sable
#

so i just used that

wooden jewel
#

Yeah, someone in another forum posted some edge cases that can be done quickly, but with the size of test cases that AOC provides just brute forcing it is fine

low condor
#

It's weird to see a brute-forceable Part 2 in AOC though

wooden jewel
#

true true

#

even though today was also brute-forcable

sinful pawn
#

I wonder if there are people who do AoC "by hand"

low condor
#

Some people do for sure

#

Well, the easy ones anyway

sinful pawn
#

I did day 2 with just find and replace in VSCode

#

that was cool

low condor
#

But I read on the subreddit that someone did one by hand that was crazy to me

#

Someone did Reservoir Research manually, the crazy person

sleek cave
#

don't mind me, just blasting o fortuna at full volume to hype myself as i commence to program the last step towards solution

#

holy shit, 3 hours

#

i've been working on part 2 for three hours

#

so hyped

low condor
#

How close are you to the solution?

hidden musk
#

still brute forceable :P

placid lake
#

my initial solution was brute force lol

#

only took a few seconds

minor cave
hidden musk
#

i guessed ||mean|| after correctly guessing ||median|| for part 1, i just rounded wrong

low condor
rancid creek
#

I did bf, and then tried the clever approaches after.

rancid creek
#

It's frequently easier to figure out the harder approaches if you have an already working solution.

hidden musk
#

i paid for the whole speedometerprocessor, i'm gonna use the whole processor

rancid creek
sleek cave
#

here, you have a success, an Objectivitix beyond the purest joy, and o fortuna's climax playing in background

hidden musk
#

yeah, esp for day 6

low condor
#

this RAM can fit so many lanternfish in it

woven sable
#

AOC Day 6 Part 2

hollow wharf
#

lmfao

woven sable
#

||I seriously thought it wouldn't take that long for 256 iterations but then someone in here said it would take 11 TB of RAM and then I realized||

low condor
#

exponential growth

#

Even though I know how exponential growth works, it still surprises me when things take long because of it, even though it feels like it shouldn't

hollow wharf
minor cave
#

||For pt 2, 1 -> 112 is super speedy, it then grows exponentially for each additional day. I killed mine at day 200, when it was chewing through like... I think 2 Gb RAM?||

low condor
hollow wharf
#

I think that the RAM requirement for a naïve implementation of day 6 grows like e^(1.09n) or so

mossy basin
#

i didn't even try part two with initial solution, i knew the solution we were lead to in part 1 was bait even while i wrote it

hollow wharf
#

yeah same

#

I just ran it for the hell of it

sleek cave
sleek cave
#

just realized i don't need spoilers for that lmao

sleek cave
#
 1)  496   470 |  54.75%  51.88%
 2)  454   444 |  50.11%  49.01%
 3)  424   366 |  46.80%  40.40%
 4)  319   301 |  35.21%  33.22%
 5)  288   281 |  31.79%  31.02%
 6)  287   272 |  31.68%  30.02%
 7)  269   265 |  29.69%  29.25%
 8)  243   196 |  26.82%  21.63%
```here's your daily dose of falloff stats
minor cave
#

lmao the difference on day 8.
pt1: that was fun!
pt2: .... I'll come back to that later

maiden brook
#

at this rate, we'll have 10 by christmas

minor cave
#

Day 3 still proves to be the bigger culling between pt1 and pt2

maiden brook
#

because people couldn't be bothered to crunch numbers I assume?

rancid creek
hidden musk
#

right, but i think most the people who will ever complete it have completed it

rancid creek
#

Pretty sure there is evidence to the contrary from previous years. But the numbers might be small relatively.

hidden musk
#

hmm 🤔 , would be cool to graph that data

rancid creek
#

things is the numbers change each year as well.

minor cave
#

We can query the API since it gives completion times, create a chart from that

rancid creek
#

generally goes up each year, but so far last year had more than this year, so I see that as meaning there are still more coming this year.

maiden brook
#

yes I would like to think that AoC is growing more than it is dying

#

at least I hope so

minor cave
hidden musk
#

ples give points for more than top 100. top 1000 at least 🥺

minor cave
hidden musk
#

with top 1000 i'd have points 😔

clear nimbus
#

Hey, this is the first year i'm solving AOC, can someone tell me if this year is being in general easier or harder or equally difficulty to other years? What year was the hardest? thanks 🙂

#

in your opinion of course

sleek cave
sleek cave
sleek cave
#

but still, the days generally get harder as they progress

maiden brook
#

what if today's problem is the hardest thing we've ever seen

rancid creek
velvet stag
#

no way

rancid creek
#

One stat you can look at, completion time for the top 100.

#

2020.20 #100: 1 hour 13min, 2021.8 #100: 20 min

maiden brook
#

today meaning tomorrow pithink

sleek cave
rancid creek
#

2019.18: #100 1hour 57 minutes.

hidden musk
#

ah, that one was fun

velvet stag
#

i solved sea and keys with no hints, i can't consider them toughest

#

but can;t argue with lb times

rancid creek
#

I think I lucked out on the CRT one as I had just the day before been explaining CRT to a /r/learnpython user.

velvet stag
#

i also solved crt with no hints, i didn't know it's even called that

#

i also lucked out because earlier I noticed that's how lcm of 2 numbers works

rancid creek
#

But probably not this much lucked out:

print('part 1:', bus*(time-t), 'part 2:', sympy.ntheory.modular.crt(m,r)[0])
acoustic coral
#

.aoc unsubscribe

hidden copperBOT
#

Okay! You have been unsubscribed from notifications about new Advent of Code tasks.

peak dock
#

TIL sympy has crt lol

gilded grail
#

is today's part 2 just figuring out how to figure out where each letter is

#

my brain cant function rn

void ocean
#

yeah

gloomy kernel
hollow wharf
#

DAY 9 APPROACHETH

gilded grail
sonic silo
#

i think youve just seen part 1

#

part 1 was hella easy with a trick

#

but part 2 required you to do both the prev part and the jigsaw solving "legit"

late frigate
#

GL everyone!

prisma sundial
#

gl

north silo
#

.aoc countdown

hidden copperBOT
#

Day 9 starts <t:1639026000:R>.

sinful pawn
#

oops

hollow wharf
#

ah nice

sinful pawn
#

I keep forgetting about these

fluid pebble
#

hi

#

what is the defination of the low points?

hazy pendant
#

h

signal grotto
sharp panther
#

any location touching the item in question, I'd imagine

signal grotto
#

Yep, except diagonals

fluid pebble
onyx plank
#

question, in my test input it gives 98789, why is 7 not a low point?

signal grotto
onyx plank
#

it's lower than both numbers next to it

signal grotto
onyx plank
#

OHHH

fluid pebble
#

the advent questions now looks harder now

onyx plank
#

ok i didn't see that part i thought it was just directly next to

#

ty!

signal grotto
onyx plank
#

still easier than yesterday imo

signal grotto
fluid pebble
#

i got 100 lines of input...

signal grotto
onyx plank
#

the worst part is i don't know how many times i reread up, down, left, right but somehow thought it meant the adjacent is up and down lmao

fluid pebble
signal grotto
stable heron
#

im sure there is a wayy smarter method to do this 😔

fluid pebble
signal grotto
onyx plank
#

it's ugly but it'll work

fluid pebble
signal grotto
#

The height is the number itself

warm grail
#

yeah

signal grotto
#

Each number corresponds to the height of a particular location, where 9 is the highest and 0 is the lowest a location can be.

warm grail
# fluid pebble

the risk levels are 2,1,6,6 because the heights are 1,0,5 and 5 respectively

fluid pebble
signal grotto
fluid pebble
#

i understanded

#

sweet

somber plover
#

how to part 1

onyx plank
signal grotto
somber plover
#

ok!

fluid pebble
#

this question sounds weird

#

but

#

if i do for x in range, for the first loop is x = 0?

signal grotto
#

!e ```py
for x in range(3):
print(x)

marsh currentBOT
#

@signal grotto :white_check_mark: Your eval job has completed with return code 0.

001 | 0
002 | 1
003 | 2
signal grotto
onyx plank
#

question, i'm basically trying to put the entire input file into a 2d array of ints

#

I have this solution and it works fine

    with open(file) as f:
        fdata = f.readlines()
        data = []
        for line in fdata:
            line = line.strip()
            l = []
            for n in line:
                l.append(int(n))
            data.append(l)
#

but is there any way to do it that's more concise and less ugly?

#

bc i'm basically building each item manually

mossy basin
#

that was messy

humble copper
#

||for part 2, are we supposed to assume that every basin will be surrounded by 9s?||

#

||and that something that goes like (lowpoint)1 2 6 4 is a basin?||

signal grotto
humble copper
#

oh my bad

signal grotto
#

No worries!

somber plover
signal grotto
hollow wharf
#

Part 1 is fortunately very straightforward. Having some friends over tonight, but I’ll take a crack at it before bed

narrow crown
#

hows sthe latests day

hollow wharf
#

Part 1 looks very straightforward. Can’t speak for part 2.

narrow crown
#

ill catch up soon (few yrs later)

hollow wharf
#

I’ll see if I wind up wasting a lot of time today. Often I write one internal representation of the data for part 1 then I get to part 2 and realise that I need a completely different representation

peak dock
#

not a lot of ways you can represent grids, heh

hazy pendant
#

oh, ok

lapis tapir
#

How do i see the puzzle for today?

fringe temple
#

hmm my code works for the in-page example but for the input it gives an answer for a different input set pithink

winter vigil
#

same part 1 is soo simple

#

idk what my code is doing wrong

lapis tapir
#

What is the puzzle?

winter vigil
#

ik i am bounds checking in 2d list properly

fringe temple
#

day 9

winter vigil
#

and i am getting the right answer in the sample input

fringe temple
honest nacelle
#

Quick tip for anyone who is having trouble debugging and is using a regular 1-dimensional array: make sure you're calculating ALL of your map boundaries correctly

#

There's a particular case that the sample doesn't run into

hazy pendant
#

oops

lapis tapir
humble copper
#

i am literally so close with finishing part 2
||i have the basin size calculating complete but idk how to find the largest 3 numbers|| 😭

sinful pawn
#

I so hope that day 5+ weren't like day 4

#

day 4 was a nightmare for me

humble copper
#

one of these days im going to do all parts of a day within the first hour that its out

humble copper
sinful pawn
#

thank you

mystic plover
#

i dont how im wrong

#

hm

winter vigil
#

yea same soo lost

#

my logic is correct fs

mystic plover
#

same

#

or at least it looks correct

winter vigil
#

man, part 1 is supposed to easy sheesh

#

i think

mystic plover
#

ikr

winter vigil
#

there is some edge case

mystic plover
#

yea

winter vigil
#

or some kind of misunderstanding

#

in my reading

#

so

mystic plover
#

what happens when theres two equal heights

winter vigil
#

to count the low point

mystic plover
#

next to each other

#

and all the others heights near it are larger

fringe temple
mystic plover
#

hmm

sturdy lichen
stable heron
mystic plover
#

oh hm

#

bruh part 2

fringe temple
peak dock
#

😔

#

inb4 people on the global leaderboard figure out a polynomial time algorithm and end up solving it in 3:46 minutes

sinful pawn
#

man... I was so confused as to why something wasn't working

#

it turns out, I was making a tensor of height 0

peak dock
#

they should just throw in some random unsolved problem once in a while

velvet stag
#

reddit made that joke

peak dock
#

LMAO for a second i fell for it

void ocean
#

i don't get the joke

#

oh lol

velvet stag
#

it's never been done, even without that large bound, no one has found any at all

#

and yet it's not known to be impossible

sonic silo
#

gotta love the "next aoc puzzle is a yet-to-be-solved/unsolvable problem"

sinful pawn
#

welp... I've absolutely confused myself

#

this is quickly becoming more and more unfun

hazy pendant
#

collatz

sinful pawn
#

welp... here we pray

#

:faint: that wasn't it

#

anyways...

#

yeehaw

#

oh lord. part 2 ;-;

jovial pebble
fringe temple
#

again it works for the example but not the input ;_;

proud cosmos
#

had the same thing for part 1 haha

#

I think one part that gave my code problem was an area with || all 9s, and I did > instead of >= accidentally||

bleak sable
#

Yesterday I forgot to do len and I got wrong order ~sometimes~

proud cosmos
#

rip

fringe temple
bleak sable
#

You can cut your input to one line and do it manually and compare

bright spindle
proud cosmos
#

I printed the neighbours of every basin I checked (I had too many) and looked if anything was weird

winter vigil
#

btw, does advent of code have an API?

void ocean
#

yeah

winter vigil
#

it would be nice to run a function that downloads your input given the day number

winter vigil
#

i tried looking at the fetch/xhr in network, but i couldn't find anything

void ocean
#

There are repos dedicated to that already

bright spindle
void ocean
#

I think salt has one

bright spindle
#

aoc_helper I think

winter vigil
#

ah, so a wrapper for it

bright spindle
#

I use one for Rust as well

winter vigil
#

aoc_helper is repo name?

bright spindle
#

Yeah, and pypi package

winter vigil
#

ah wow

bright spindle
#

So you can install it with pip

winter vigil
#

nice

bleak sable
winter vigil
#

not sure why they didn't make a public documentation for it?

bleak sable
#

why would they? it's not their problem. and oath has a lot of docs already

#

How does authentication work? Advent of Code uses OAuth to confirm your identity through other services. When you log in, you only ever give your credentials to that service - never to Advent of Code. Then, the service you use tells the Advent of Code servers that you're really you. In general, this reveals no information about you beyond what is already public; here are examples from Reddit and GitHub. Advent of Code will remember your unique ID, names, URL, and image from the service you use to authenticate.

jovial pebble
#

I was wondering, I see a lot of solutions that find basins starting from the low points. But that's not guaranteed to find all basins right? Because a basin could have two minima next to each other that wouldn't be counted as a low point.

proud cosmos
#

I don't think that exists in our input

#

But yes technically thay would be missed I suppose

bleak sable
#

if they are equal, then they are not lower

jovial pebble
#

Exactly. So if you only start at low points, you'd miss a basin like this:

99999
92229
99999```
warm grail
#

that type of a basin doesn't exist

jovial pebble
#

Can you be sure of that?

warm grail
#

according to the input

jovial pebble
#

ah I see

#

lol

#

A basin is all locations that eventually flow downward to a single low point.

#

So it doesn't say that my proposed basin doesn't exist, but just that that wouldn't be counted as a basin

fringe temple
#

Is something like

6875
5134
3847```
a basin or do they need to have consecutive numbers from the minimum?
bleak sable
bleak sable
fringe temple
#

oh i thought that 8 came from the 5 > 6 > 7 path

maiden brook
jovial pebble
#

Ok you're right. Reading is hard. This has previously broken me up 😄

fringe temple
#

Looks like they have to be consecutive. In the first example, there's are 8s next to the 1 and 3 not counted

hollow wharf
#

I'm just staring blankly at today's problem

hollow wharf
#

programming is hard enough when I'm sober. should probably try again tomorrow

#

no

peak dock
#

no

bleak sable
#

no. even first part was without diagonals

fringe temple
#

🤦‍♂️ thanks

bleak sable
hollow wharf
#

Yeah I know I overshot the Ballmer peak by a few daiquiris

peak dock
#

F

hollow wharf
#

just means I have to try less daiquiris next time and hone my optimal BAC for top programming

#

it's an optimisation problem 😎

bright spindle
#

||The problem description specifically said diagonals don't count, y'know.||

zenith moat
#

.aoc join

bright spindle
fringe temple
#

sorry

hollow wharf
#

representing 2D spaces can be such a pain in the ass...

sinful pawn
#

omg finally...

proud cosmos
#

Nice!

sinful pawn
#

4 hours...

hollow wharf
#

grats

sonic silo
#

neat

#

gj

sinful pawn
#

please tell me there's no more stinky nth arrays 😔

#

these are taking me ages

sonic silo
#

uh

sinful pawn
#

oh no

sonic silo
#

these kidna puzzles with grids/nth arrays are in fact

#

very typical

sinful pawn
#

lord, I hate these

sonic silo
#

tbf

sinful pawn
#

My code is so unholy

sonic silo
#

nth arrays are a very convenient way to represent data

#

but for example ||today you could use dicts in order to represent positions||

#

:)

sinful pawn
#

convenient if you can wrap your head around them lemon_angrysad

hollow wharf
proud cosmos
#

Part 3 is a 7d version where the 7th dimension is time.

sinful pawn
#

oh yes. part 3

sonic silo
hollow wharf
sinful pawn
#

It took me 4 hours just for day 5

#

idk how y'all do this

sonic silo
#

which is slightly different due to time complexity and how theyre structure in memory blah blah

#

structured*

#

and evne how theyre used

proud cosmos
#

Just kinda do it and hope it works

#

Sometimes I get stuck too

hollow wharf
proud cosmos
#

Like yesterday was pretty bad

hollow wharf
sonic silo
#

haskell must have an equivalent to an array of data

#

like an actual array

hollow wharf
bright spindle
#

I think most of the time ||representing grids with sets of positions rather than multidimensional arrays is way easier||

sonic silo
#

immutable arrays of course

#

well

hollow wharf
sonic silo
#

theres a mutable version in the sense that its managed thru an IO monad

bright spindle
sonic silo
#

:o

proud cosmos
#

This reminds of 2020

#

The 4d game of life

#

Aaaaaaa

hollow wharf
proud cosmos
#

That was not a good day for me

hollow wharf
#

maybe my brain is just not seeing it

proud cosmos
#

Should be easy honestly but yeah idk

bright spindle
#

Like this

stiff kraken
#

ugh i'm behind so many days on AoC, but uni is shoving so many things about programming down our throat i'm starting to burn me out

#

makes me sad

woven sable
#

Oh nice, today sounds fun

sleek cave
#

part 1 looks deceptively easy

#

perhaps part 2 would be to construct a quantum algo determining the most efficient way to escape the cave system while simultaneously avoiding smoke

#

I may as well work on part 1 at school lmao

placid lake
#

i’m doing part 2 at school lmao

bright spindle
placid lake
#

on the ||networkx|| docs

sleek cave
placid lake
#

lmfao

bright spindle
sleek cave
#

yeah no im out-

#

fluid dynamics? pffffft not for me :p

bright spindle
#

(Just for the sake of Poe's law, I'm being facetious)

sleek cave
#

define facetious

#

if you mean joking, yeah I know you are lol

bright spindle
#

: meant to be humorous or funny : not serious

mossy basin
mossy basin
# proud cosmos The 4d game of life

i found it:
||
def convolve_dimension_(n):
KERNEL = np.ones((3, ) * n, dtype=np.uint8)
KERNEL[(1, ) * n] = 0

universe = data[(None, ) * (n - 2) + (..., )]

for _ in range(6):
neighbors = convolve(universe, KERNEL)
universe = (neighbors == 3) | (np.pad(universe, 1) & (neighbors == 2))
return universe.sum()

def part_one():
return convolve_dimension_(3)

def part_two():
return convolve_dimension_(4)
||

sonic silo
#

lol

#

i remember doing a generic n-d game of life

#

i found it

#

||`import sys, os, re, math, hashlib, itertools, string
from collections import namedtuple, defaultdict, Counter
import numpy as np

def hyperconway(raw, G=100,N=2):
if N < 2 or G < 1: raise ValueError()

adj_coords = list(filter(any, itertools.product((-1, 0, 1), repeat=N)))
m1 = {(i,j,*([0]*(N-2))) for j,y in enumerate(raw.split("\n")) for i,x in enumerate(y) if x == "#"}
print(f"Gen 0, count={len(m1)}")

for g in range(1,G+1):
    neighbours = Counter(tuple(v+dv for v,dv in zip(V,dV)) for dV in adj_coords for V in m1)
    m1={p for p in neighbours if neighbours[p]==3 or (p in m1 and neighbours[p]==2)}
    print(f"Gen {g}, count={len(m1)}")

return len(m1)

def one(raw):
return hyperconway(raw,G=6,N=3)

def two(raw):
return hyperconway(raw,G=6,N=4)`||

blazing kraken
#

python is too slow

#

it is taking 2min to calculate one number

#

for aoc 2021

#

day 8

hidden musk
#

that's not python's fault :P

honest nacelle
# blazing kraken python is too slow

Python may be a bit slower than some of its peers, but there's nothing in day 8 that should require anything that would take it more than a few milliseconds

blazing kraken
#

i will try to optomise

honest nacelle
#

A good call!

blazing kraken
#

looks like i found the culprit

#

permutations

#

are they slow?

#

I mean there are a lot of permutations

hidden musk
#

it's n!, so yes

#

there shouldn't be that many though

humble copper
#

ok im so lost

honest nacelle
#

If it's not a logical error, there is at least almost certainly some way to do what you're doing with less data to manage

blazing kraken
#

so maybe not python or perm fault

honest nacelle
#

is it running faster now?

honest nacelle
blazing kraken
honest nacelle
# blazing kraken yes

Nice! Good a lesson as any to double check your logic if things are going slower than expected. It might be fun to play around with operations on various sized datasets to see what kind of numbers cause python to slow down

humble copper
#

so im going to redo the whole thing

honest nacelle
humble copper
#

im gonna try this one more time on my own

#

not giving up just yet

honest nacelle
#

good luck and godspeed

humble copper
#

thank you

humble copper
honest nacelle
hard fable
#

My Day 9 part two works with the sample but doesn't with the real data 😕

hard fable
#

I'll try to solve it by my own first but yeah

sleek lark
hidden musk
woven oriole
#

is there a better way to check neighbour digits than recursion

hidden musk
#

iteration!

woven oriole
#

👀

#

i am thinking of collecting all the 9's indices

#

and doing some sorcery with it

#

😩

#

but it is not that simple

tulip elbow
#

bfs

#

keep track of points you've seen

woven oriole
#

yeah

tulip elbow
#

9's are walls

woven oriole
#

thats why made a class

#

hm

#

btw i am assuming that the recursion does not go simultaneously if we deployed multiple function calls right

#

like

#
def re(p):
  if con:
      ...
  return re(hm) + re(ok) + re(bruh)
#

so re(hm) should finish his complete dynasty of recursions before moving to the next

#

or is it

#

vsauce moosic plays

hidden musk
#

yes, it should

woven oriole
#

ok

craggy rover
#

.aoc join

eternal forge
#

Got the right answer for the test-data for P1 and P2, but only P1 for the real data 🙃

regal garnet
#

I dont understand how finding the lower points works, the example confuses me

eternal forge
regal garnet
#

Oh I'm dumb, tnx for letting me know xd

#

I think I missread the assignment

sick fern
#

god damn it I forgot about aoc today

#

finished it so late

rotund rapids
#

for a basin it doesn't have to have adjacent numbers that are either one higher or one lower it just has to be adjacent nums not 9?

rotund rapids
#

sick, thanks

#

just felt weird all examples were of numbers connected by 1 point

eternal forge
#

Oh so like 0, 2, 6, is a valid basin?

rotund rapids
#

yea as long as they are connected

eternal forge
#

Jeez

rotund rapids
#

the examples just show that bc all of our inputs have consecutive numbers anyways

#

you want find like 026 connected

#

only num that doesn't apply is 9 whiuch is the wall

eternal forge
#

Here I am checking for increments of 1 only 😄

rotund rapids
#

yea, that got me

eternal forge
#

Woo, got the right answer then 😄

#

Time to refactor the horrendous code and remove all the prints 😄

hollow wharf
#

ay, we solved day 8

#

quite happy with it, it runs in only 1.8s

#

I feeeeeelll like day 9 without numpy will probably push CPython to its limit

peak dock
#

nah

#

both parts finish on the order of milliseconds for me

devout tusk
#

without numpy..

pliant comet
#

yeah input isn't that big

hollow wharf
#

guess not

#

0.02s to parse everything

devout tusk
hollow wharf
#

hmm

#

it includes startup time

peak dock
#

oop that should prolly go to spoilers

hollow wharf
#

I'm trying to guess what part 2 may be

#

so I don't lock myself

#

oh well

#

a rewrite never killed anyone, did it

woven oriole
#

yes

#

it

#

killed

#

time

#

😩 which is priceless

hollow wharf
#

every grid is 100x100?

peak dock
#

there is only one

hollow wharf
#

oh really

#

I assume lower means strictly lower?

#

yolo

#

expected

peak dock
#

fun

hollow wharf
#

well that's a problem

#

I get the right answer on the sample

#

if not (0 <= x < SIZE and 0 <= y < SIZE) why doesn't this work correctly lemon_unamused

#

oh my god the sample isn't a square

sleek lark
#

@hollow wharf yes it is I think

#

@hollow wharf I think you did not read the riddle correctly

hollow wharf
#

and all other locations will always be part of exactly one basin.
That's a bit concerning, considering assigning a location to a basin or another will give you a different output

peak dock
#

wdym?

woven oriole
#

the basin region will always be disjoint

#

so

#

no need to worry about it ig

proud cosmos
hollow wharf
#

If it were to have overlap though there would be many different answers to the puzzle

woven sable
#

Today is my favorite day so far, ||I've never actually had to use recursion for a problem so it's refreshing to use it lemon_hyperpleased||

woven oriole
#

used recursion for continuous 2 days

pearl moon
#

@woven sable I used iteration for that one 🙂

woven sable
pearl moon
#

Well I'll just say this...there's usually an iterative way to solve common ||graph search problems||. I'd suggest Googling it a bit if you're not already familiar. It can be really handy if you're ever doing it for real and you have a huge graph that will blow up your stack (unless you have tail recursion)

brittle mauve
#

Man i gave up on advent of code

#

I couldnt do day 3 then i forgot about the other days and when i checked it was too complicated for me

pearl moon
#

I withdrew from the leaderboard I was in. It was making me feel stupid not being able to finish as quickly as the others

#

Want to see my journal entry from Tuesday?

Quit Advent of Code.  Just too stupid and slow to keep up.
modern harness
#

My poor performance last night knocked me from 7th place on the discord leaderboard to 14th... ouch, that is a huge impact for just a single day's problem

woven oriole
#

i did today's one after 10 hrs of being uploaded due to some work , lost 19 places

#

¯_(ツ)_/¯

fossil cipher
#

I seem to have gone up several places since day 3 or 4. I guess due to some people having dropped out rather than any skill on my part 😄

#

Although I got kinda lucky today. My solution is very close to an algo I used in a minesweeper game (for the cascade of squares being revealed if you reveal an empty tile).

woven sable
woven oriole
#

you always gotta work around matrix and stuffs

fossil cipher
#

It was a little toy project I did a few years ago for the lols. Wasn't very good overall, but I guess it came in useful 😄

pearl moon
#

I think the leaderboards are probably not a good thing....unless you reveal them at the end, maybe. But it doesn't encourage good code. It encourages fast code

fossil cipher
#

The leaderboard is very much a "oh nice" thing for me. I don't even look at the day's puzzle until several hours after it's unlocked, so not storming to the top of any leader boards any time soon 😄

woven oriole
#

so its fine not to be worried about your pos because why should you

pliant comet
#

i think it's fun to try to solve it as fast as possible at first, and then make your code better later

#

i like racing against my friends :D

woven oriole
#

yeah

#

thats why i write ugly code at the first approach

#

🥴

fossil cipher
#

The leaderboard definitely scratches the itch of the competitive programmers out there lol

woven oriole
#

cough cpp

devout tusk
# pearl moon I think the leaderboards are probably not a good thing....unless you reveal them...

https://www.youtube.com/watch?v=CFWuwNDOnIo
even the creator agrees. He believes that analyzing, understanding and solving a problem in a creative way is what should matter

Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like. People use them as a speed contest, interview prep, company training, university coursework, practice problems, or to challenge each other. In this talk, the creator of Advent of ...

▶ Play video
woven oriole
#

but the thing is that we cant compare codes on the basis of beautification or approach so the only way left is speed 🥴

pearl moon
#

Well, the competition could be to see who completes all the challenges...not that many people do that

#

I mean, does the top person on the leaderboard win anything?

woven oriole
#

uh people dont do things to win something
they are just doing their competitive grindset

steep shard
#

why would my code get the right answer on the example input but not on the actual input

#

for todays thing

#

is there something weird about the example input

woven oriole
steep shard
#

no

woven oriole
devout tusk
steep shard
#

if u didnt want us to read it then why did u send it

turbid lake
#

What means "advent of code"?

pearl moon
#

Lol I wonder how many people are using copilot on this

#

And how useful it is

#

8 and 9 are probably a 3-4 IMO

minor cave
devout tusk
#

lel

woven oriole
#

i too should sleep

#

lemon_sleepy already midnight

#

gn

devout tusk
woven oriole
woven oriole
devout tusk
pulsar hollow
#
cdfbe: 5
gcdfa: 2
fbcad: 3
dab: 7
cefabd: 9
cdfgeb: 6
eafb: 4
cagedb: 0
ab: 1``` i dont understhis at all what is the logic applied when decoding the digits
#

i get that 8 is for 7 and 7 for 3 and 2 for 1 etc

#

but how are others decided

pearl moon
#

For that one....there's more than one way of comparing digits, or rather comparing the data that makes up the digits. One way is a lot more useful than the other

woven sable
#

fbcad light up to form 3

tepid raptor
#

hey, this is a more general question, let me know if I'm in the incorrect channel. Last year (and this one) I've seen people use libraries like networkx for their solutions . Where did you guys learn to use those for your problems? Do they have common implementations? If so, for what? I knew a bit about numpy and its linear algebra library, but never thought that I could use linear algebra for solving the problem from AoC.

terse comet
#

what if I told you those are libraries made to solve real-world problems that people use in their regular day to day work?

#

I don't mean to be rude or pick on you, it is just a bit funny

tepid raptor
#

I wouldn't be surprised. I don't mean that those libraries are meant only for AoC problems.

terse comet
#

networkx in specific is widely used for working with graph networks in python, which makes some kind of problems easier

tepid raptor
#

I haven't studied graph theory nor any field of computer science (I know some basic introductions but nothing else), I was asking for resources to learn what kinds problems do they solve to see where I can apply them as well.

rapid wolf
#

in my case, it's just having some knowledge of the underlying math. It's the same as with any math problem, you just sometimes see the relation to a math concept you already know and solve it that way

tepid raptor
#

oh, ok I see

#

that makes a lot of sense

terse comet
#

yeah... most of the time on these cases, it is about recognising that a determined problem is related to a topic you already know.
usually things like "find the shortest distance between two points"

#

(oversimplifying it a little bit)

tepid raptor
#

yeah, I did recognise something in day7 about that

#

not specifically about the points, just about maths

#

I guess I'll have to research more on graph theory

#

genuinely interested

terse comet
#

yeah - even though not every problem is related to graph theory, it can be fun to learn some things about it and play around with graphs a bit

tepid raptor
#

sure!

terse comet
#

there are even some "NoSQL" databases based on graph theory (such as Neo4J) if you want to mess around with it

rapid wolf
#

Graph theory is one of the most useful parts of CS overall. Most fields have at least some GT problems

#

an unexpected-ish place is register allocation in compilers

tepid raptor
#

welp, that is REALLY interesting

#

I'm making my own C compiler, and already made a sort of working register allocator, never knowing it actually follows a known pattern

rapid wolf
#

graph coloring is afaik the more specific description

tepid raptor
#

i see

#

thanks a lot!

unreal patrol
#

can someone help me

#

with this 2

low condor
vague tundra
halcyon portal
#

hi

sleek cave
#

||part 2 is one of those searching algorithms, exactly what i'm inexperienced with lmao 😔||

#

though this is why i LOVE aoc

#

learn so much new stuff

#

||oh it's a recursive solution again isn't it||

proud cosmos
#

Not necessarily

sleek cave
proud cosmos
#

would probably work

sleek cave
#

||sure, you can probably solve it iteratively, but why when you can recurse :D||

proud cosmos
#

||Some advantages to doing it iteratively usually||

sleek cave
#

true true

proud cosmos
#

|| BFS is terrible recurisvely as far as I know, DFS is easy though||

low condor
sharp panther
#

2019 was the year of intcode, right? I've heard that that year was particularly fun and want to do it.

proud cosmos
#

Yea

sleek cave
#

i heard that recursion gets a bad rep for being inefficient, but then again you have @cache

sharp panther
#

ty

proud cosmos
#

Poor cache person

#

I have to actually do 2019 at some point

#

i stopped cause it was a bit too much for my skills

slender steeple
#

dont use recursion please

sleek cave
mossy stream
#

if my output number takes more than the full length of the my terminal to show up, do you think I messed up?

proud cosmos
#

If it's a single number and you're doing day 9

#

yes

#

The maximum you could get (which isn't even possible) is every single input data

#

unlikely (read won't happen) and not sure that'd fill it hmmmm

mossy stream
#

||Find the three largest basins||
it would help if I were to read the prompt dogekek

#

1825553075572295861000688390570293789728808334688285126417584321133963999289062138010144228311094741155009439264911024135120900171851405879947173198105108715459217161078552924894715943887311121450728850201515251664265399503302964559270002842643988480000000000000000000000000000000000000000000000000000000000 would have been an interesting output though

proud cosmos
#

and inaccurate

#

also kinda spoily there may want to spoiler it

mossy stream
#

what even is spoily here

proud cosmos
#

part 2 question

woven sable
sleek cave
#

okay i need to stop clicking on spoilers now

#

luckily, i don't know how to do breadth-first search

proud cosmos
#

First you breathe in

#

slowly

#

imagine a feather

mossy stream
#

well, I got it wrong on the input but right on the sample

sleek cave
#

so that spoiler doesn't affect me :D

mossy stream
#

so like

proud cosmos
#

I had the same thing

mossy stream
proud cosmos
#

some things aren't covered

woven sable
proud cosmos
#

For example I believe || if you did not include ONLY lower than all adjacent ones (so <= is fine)|| is not covered (wrong)

woven sable
#

I also learned about BFS today though

mossy stream
sleek cave
#

recursion is breaking my brain

#

today's puzzle reminds me of trees

#

i hate trees

#

thus, i hate this puzzle

#

but i also love it

noble skiff
#

did anyone discover a super optimal solution for day 7

proud cosmos
#

There are some nice solutions for both of them

#

So yes someone did do things that could fit that criteria

noble skiff
#

are there no spoilers allowed here? Can you point me to anywhere those solutions are posted?

proud cosmos
woven sable
sleek cave
#

today's puzzle is so fun

#

trees are amazing

woven sable
craggy mural
#

@hidden musk

gilded grail
#

im kinda confused at what edge case the sample input doesnt have that the actual does

#

nvm

#

thats so stupid

void ocean
#

the history an AoC doer

peak dock
#

dfs is commonly implemented both recursively and iteratively

hollow wharf
#

it took me an embarrassingly long time to notice that my solution wasn't working because ||I had made a graph with a cycle in it||

#

it worked on the sample. I was losing my mind

wispy glacier
#

anyone on day 3? dogekek

hollow wharf
sharp panther
#

me!

wispy glacier
#

oop ty for the reminder

#

omg heyyy

sharp panther
#

I've been skimming and coming up with half-solutions that don't completely work, but not actually doing them all

wispy glacier
#

oh picking and choosing?

#

i heard day 4 was uber annoying

sharp panther
#

I basically attempt all of them, but if they'll take more than 15 minutes for me, then I'll wait to come up with a complete solution (which is all of them beyond the second)

#

I might do them over break

wispy glacier
#

i think i did day 3 part 1 so time to do part 2

#

oh and this is my first ever aoc praise

forest basalt
#

Does anyone know how I can use curl to get my input file from the website? When I pull the file it says Puzzle inputs differ by user. Please log in to get your puzzle input.

sharp panther
#

You need to use your session token as a cookie