Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Solving Advent of Code 2020-09 with R & Neo4j.

[Disclaimer] Obviously, this post contains a big spoiler about Advent of Code.

## Instructions

We have a `XMAS` code, which:

• Any following number should be the sum of one of the possible pairs from the previous 25

• In step 2, find the consecutive set of number that sums to the result of part 1, and add its min and max

Find the complete instructions at: https://adventofcode.com/2020/day/9.

## R solution

### Part one

```# Reading the data
sep = " ",
"2020-09-aoc.txt",
stringsAsFactors = FALSE
)

for (i in 26:length(input\$V1)){
# The 25 starting numbers
to_get <- (i - 25):(i-1)

# The 26th number should be between the
# sum of the two lowest number and the sum
# of the two highest
lower_bond <- sum(
sort(input\$V1[to_get]),
2
)
)

higher_bond <- sum(
tail(
sort(
input\$V1[to_get]
),
2
)
)

if (
!dplyr:::between(input\$V1[i], lower_bond, higher_bond)
){
output1 <<- input\$V1[i]
print(output1)
break

}
}

##  530627549
```

### Part Two

```for (i in 1:length(input\$V1)){
# We will try to find any sequence in 1:n, then 2:n,
# then 3:n, etc, that sums to output1
selection <- input\$V1[i:length(input\$V1)]
c_s <- cumsum(selection) == output1
if (
any(c_s)
){
bounds <- selection[1:which(c_s)]

print(
sum(
min(bounds),
max(bounds)
)
)
break
}
}

##  77730285
```