summaryrefslogtreecommitdiffstats
path: root/day15/day15-2.js
blob: 11b137c6d5a6f72f412b4a39bd97f97a5ad9e629 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const data = [0,13,1,16,6,17]

const numbers = {}
let last, prev1, prev2

const game = (turns) => {
  for (let i=1; i <= turns; i++) {
    if (i <= data.length) {
      numbers[data[i-1]] = [i, 0]
      last = data[i-1]
    } else {
      [prev1, prev2] = numbers[last]
      if (!prev2) {
        last = 0
        numbers[0] = [i, numbers[0][0]]
      } else {
        last = prev1 - prev2
        if (numbers[last]) {
          numbers[last] = [i, numbers[last][0]]
        } else {
          numbers[last] = [i, 0]
        }
      }
    }
  }
}

game(30000000)
console.log(last)