Golfcoder FAQ LOGIN
Error

Advent of Code Leaderboard 2023 / Day 3

View puzzle on adventofcode.com

Submit solution



Rules
  • You're welcome to participate alone or in a team.
  • You may submit multiple solutions and explore different programming languages.
  • Stick to the standard library of your language, no further dependencies/libraries, except the ones which OneCompiler provides (e.g. NumPy for Python).
  • Ensure your code aligns to the template (Python, Rust, Go, Kotlin, JavaScript, C#, TypeScript, C++, Java, C, Swift, Scala, Ruby), reading the puzzle input from stdin (terminated with end-of-file), and printing the solution to stdout.
  • Please refrain from making network requests, reading data from files, or storing data in variable/function/class names for reflection.

Leaderboard

Name Language Tokens Sum Tokens Part 1 Tokens Part 2 Last change
1 Profile imageLiquidFun Python 555 275 280 6 months ago
2 Profile imageValentin Slawicek Kotlin 1198 576 622 7 months ago
3 Profile imageVisible-Bag4062 C++ 10473 473 - 7 months ago

280 tokens in Python for part 2 by LiquidFun

Download solution

fromcollectionsimportdefaultdict

lines=open(0).read().splitlines()
gear_to_num=defaultdict(list)

is_valid=lambday,x:0<=y<len(lines)and0<=x<len(lines[0])

foryinrange(len(lines)):
forx_startinrange(len(lines[y])):
x_end=x_start
iflines[y][x_start].isdigit()and(notis_valid(y,x_start-1)ornotlines[y][x_start-1].isdigit()):
whileis_valid(y,x_end+1)andlines[y][x_end+1].isdigit():
x_end+=1
good=False
forydinrange(y-1,y+2):
forxdinrange(x_start-1,x_end+2):
ifis_valid(yd,xd)andlines[yd][xd]notin'.0123456789':
good=True
iflines[yd][xd]in'*':
gear_to_num[(yd,xd)].append(int(lines[y][x_start:x_end+1]))

print(sum(n[0]*n[1]forningear_to_num.values()iflen(n)==2))