Advertisement
Guest User

Untitled

a guest
Dec 16th, 2020
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 0.72 KB | None | 0 0
  1. package fifteen
  2.  
  3. class RambunctiousRecitation(private val startingNumbers: List<Int>) {
  4.  
  5.     fun play(stopAt: Int = 2020): Int {
  6.         val spokenNumbers =
  7.             startingNumbers.dropLast(1).mapIndexed { index, it -> Pair(it, index + 1) }.toMap().toMutableMap()
  8.         var turn = startingNumbers.size + 1
  9.         var lastSpokenNumber = startingNumbers.last()
  10.  
  11.         while (turn <= stopAt) {
  12.             val currentNumber = if (lastSpokenNumber in spokenNumbers.keys)
  13.                 (turn - 1) - (spokenNumbers[lastSpokenNumber]!!) else 0
  14.             spokenNumbers[lastSpokenNumber] = turn - 1
  15.             lastSpokenNumber = currentNumber
  16.             turn++
  17.         }
  18.         return lastSpokenNumber
  19.     }
  20. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement