Advent of Code 2021 - Day 7

Aloha, crabs can build and drive submarines. They need fuel though.

crab_pos <- readLines(con = "day_seven_one")
crab_pos <- as.integer(unlist(strsplit(crab_pos, split =",")))

Function:

FuelCon <- function(crab_pos) {
  align_pos <- min(crab_pos): max(crab_pos)
  fuel_sum     <- sapply(align_pos, function(x){
    diff_pos   <- abs(x - crab_pos)
    wrong_fuel <- sum(diff_pos)
    real_fuel  <- sum(sapply(diff_pos[diff_pos > 0], function(y) sum(1 : y)))
    list(wrong_fuel, real_fuel)
  })
  return(fuel_sum)
}

Part 1:

fuel_con <- FuelCon(crab_pos)
(answer <- min(unlist((fuel_con[1, ]))))
## [1] 356958

Part 2:

(answer <- min(unlist((fuel_con[2, ]))))
## [1] 105461913

See you on day 8!

Avatar
Moritz Mueller-Navarra

A Data Scientist using R

Related