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( head( 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 } } ## [1] 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
}
}

## [1] 77730285