Skip to content

Commit

Permalink
day 15 done
Browse files Browse the repository at this point in the history
  • Loading branch information
shilangyu committed Dec 15, 2020
1 parent 550b5c7 commit a338e02
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 2 deletions.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ function writtenIn(day: number): string {
| 12 |||
| 13 |||
| 14 |||
| 15 | | |
| 15 | | |
| 16 |||
| 17 |||
| 18 |||
Expand Down Expand Up @@ -109,5 +109,8 @@ day 13:
day 14:
part 1: 15403588588538
part 2: 3260587250457
day 15:
part 1: 421
part 2: 436
```
</details>
1 change: 1 addition & 0 deletions inputs/day15.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
20,0,1,11,6,3
3 changes: 2 additions & 1 deletion run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ dart run src/day09.dart &&
dotnet script src/day11.cs &&
swift src/day12.swift &&
cargo +nightly eval src/day13.rs &&
go run src/day14.go
go run src/day14.go &&
julia src/day15.jl
34 changes: 34 additions & 0 deletions src/day15.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
get_inputs() = open("./inputs/day15.txt") do f
readlines(f)[1] |> l -> split(l, ",") .|> string .|> String |> l -> parse.(Int, l)
end


function run_game(upto)
nums = get_inputs()

prev = pop!(nums)

memo = Dict((num, i) for (i, num) in enumerate(nums))

turn = length(nums) + 1

while turn != upto
if haskey(memo, prev)
memo[prev], prev = turn, turn - memo[prev]
else
memo[prev] = turn
prev = 0
end

turn += 1
end

return prev
end



part1() = run_game(2020)
part2() = run_game(30000000)

println("day 15:\n\tpart 1: ", part1(), "\n\tpart 2: ", part2())

0 comments on commit a338e02

Please sign in to comment.