Skip to content

Instantly share code, notes, and snippets.

@ursulams
Created December 14, 2023 19:27
Show Gist options
  • Save ursulams/8c653b5a84b1972efe3b61944130cfe9 to your computer and use it in GitHub Desktop.
Save ursulams/8c653b5a84b1972efe3b61944130cfe9 to your computer and use it in GitHub Desktop.
2023 advent of code day 8
# first star
network <- read.table("nodes.txt", header = TRUE, sep = "\n")
edges <- as.numeric(factor(unlist(strsplit(colnames(network)[1], "")))) + 1
network$node <- sapply(strsplit(gsub("[^A-Z]", " ", network[, 1]), "\\s+"), "[", 1)
network$left_node <- sapply(strsplit(gsub("[^A-Z]", " ", network[, 1]), "\\s+"), "[", 2)
network$right_node <- sapply(strsplit(gsub("[^A-Z]", " ", network[, 1]), "\\s+"), "[", 3)
network <- network[, c(2:4)]
follow <- function(node, end_node = "ZZZ") {
steps <- 0
while (node != end_node) {
node <- network[network$node==node, edges[steps %% length(edges) + 1]]
steps <- steps + 1
}
steps
}
follow("AAA")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment