Golfcoder FAQ LOGIN
Error

Advent of Code Leaderboard 2023 / Day 1

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 imageSharparam Ruby 148 36 112 11 months ago
2 Profile imageVisible-Bag4062 Python 208 45 163 11 months ago
3 Profile imageMustafa Furkan Kaptan Python 209 43 166 11 months ago
4 Profile imageValentin Slawicek Kotlin 212 52 160 11 months ago
5 Profile imageLiquidFun Python 217 56 161 11 months ago
6 GXgaetjen Kotlin 232 78 154 12 months ago
7 Profile imageanonymous Kotlin 261 60 201 12 months ago
8 Profile imageVisible-Bag4062 C++ 290 74 216 11 months ago
9 Profile imageMathias Parger Python 348 129 219 11 months ago
10 Profile imageabnew123 Java 527 189 338 11 months ago
11 Profile imageKevin Brasier Python 10043 43 - 11 months ago
12 Profile imageNolan Locke Kotlin 10048 48 - 11 months ago
13 Profile image0bArcane Python 10067 67 - 11 months ago
14 Profile imageVisible-Bag4062 Java 10115 115 - 11 months ago

160 tokens in Kotlin for part 2 by Valentin Slawicek

Download solution

funmain(){
valspelledOutDigits="one|two|three|four|five|six|seven|eight|nine"
.split("|")
.mapIndexed{index,string->stringto(index+1).toString()}
.toMap()

valallDigits=(spelledOutDigits.keys+spelledOutDigits.values).toList()

println(
generateSequence(::readLine)
.sumOf{
valfirst=it.findAnyOf(allDigits)!!.second
// The string might end with "eighthree", in that case we want to find "three", so use findLastAnyOf()
vallast=it.findLastAnyOf(allDigits)!!.second

// Make sure to replace "one" with "1", etc.
((spelledOutDigits[first]?:first)+(spelledOutDigits[last]?:last)).toInt()
}
)
}