Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fifteen
- class RambunctiousRecitation(private val startingNumbers: List<Int>) {
- fun play(stopAt: Int = 2020): Int {
- val spokenNumbers =
- startingNumbers.dropLast(1).mapIndexed { index, it -> Pair(it, index + 1) }.toMap().toMutableMap()
- var turn = startingNumbers.size + 1
- var lastSpokenNumber = startingNumbers.last()
- while (turn <= stopAt) {
- val currentNumber = if (lastSpokenNumber in spokenNumbers.keys)
- (turn - 1) - (spokenNumbers[lastSpokenNumber]!!) else 0
- spokenNumbers[lastSpokenNumber] = turn - 1
- lastSpokenNumber = currentNumber
- turn++
- }
- return lastSpokenNumber
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement