Advent of code Day 22

Goal: Draw another map and find the closest path

Ref: http://adventofcode.com/2016/day/22


In [1]:
library(stringr)

In [2]:
input <- read.table("data.txt",header=TRUE)

In [3]:
input$Used <- as.integer(gsub('.{1}$', '',input$Used ))
input$Avail <- as.integer(gsub('.{1}$', '',input$Avail))
input$Size <- as.integer(gsub('.{1}$', '',input$Size))
input$X <- as.integer(sapply(sapply(str_split(input$Filesystem, '-'), "[[", 2), str_sub, start=2))
input$Y <- as.integer(sapply(sapply(str_split(input$Filesystem, '-'), "[[", 3), str_sub, start=2))

In [4]:
Q1 <- sum(sapply(input$Used,function(x) {if(x!=0) sum(input$Avail>=x) else 0}))
Q1


1045

In [5]:
input$sign <- apply(input, 1, function(x) {if(as.integer(x[6])==0 & as.integer(x[7])==0) "V" else if(as.integer(x[7])==0 & as.integer(x[6])==max(input$X)) "G" else if( as.integer(x[3])==0) "_" else if (sum(input$Avail>=as.integer(x[3])) > 0) "." else "#"  })

Part 2

Easyest way is to manually count, sorry about that


In [6]:
a <- lapply(lapply(split(input,input$Y),function(x) {as.character(paste(x[,8],collapse=" "))}),print)


[1] "V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G"
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #"
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . _"
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
[1] ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."

In [7]:
#Based on the Counting
Q2 <- 9 + 34 + 2 + 33 + 16 + (34*5) +1
Q2


265

In [8]:
cat("Q1- The number of viable pairs is : ", Q1, '\n')
cat("Q2- The smallest amount of mv is : ", Q2, '\n')


Q1- The number of viable pairs is :  1045 
Q2- The smallest amount of mv is :  265