Skip to content

Instantly share code, notes, and snippets.

@felix-larsen
Created December 15, 2020 08:31
Show Gist options
  • Save felix-larsen/d0a29c9e5a1fa500a3bf2546a1f32b2f to your computer and use it in GitHub Desktop.
Save felix-larsen/d0a29c9e5a1fa500a3bf2546a1f32b2f to your computer and use it in GitHub Desktop.
15th December solution - Advent of code 2020 - swift
let startingNumbers = [12,1,16,3,11,0]
var numbers = [Int : Int]()
startingNumbers.enumerated().dropLast().forEach { numbers[$0.element] = $0.offset }
var roundCount = startingNumbers.count
var currentNumber = startingNumbers.last!
//let roundEnd = 2020
let roundEnd = 30000000
while roundCount < roundEnd {
let lastRound = numbers[currentNumber]
var newNumber = -1
if let lastRound = lastRound {
newNumber = roundCount - 1 - lastRound
} else {
newNumber = 0
}
numbers[currentNumber] = roundCount - 1
currentNumber = newNumber
roundCount += 1
}
print(currentNumber)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment