Advent of Code 2020

9.R 827B

12345678910111213141516171819202122232425262728293031
  1. input <- as.numeric(readLines("input9.txt"))
  2. allplus <- function(vec) {
  3. unlist(lapply(1:(length(vec) - 1), function(i) {
  4. vec[i] + vec[(i + 1):length(vec)]
  5. }))
  6. }
  7. vvals <- sapply(1:length(input), function(x) {
  8. if (x <= 25) {
  9. return(TRUE)
  10. }
  11. tnum <- input[x]
  12. l25 <- input[(x - 25):(x - 1)]
  13. return(tnum %in% allplus(l25))
  14. })
  15. inval <- input[!vvals][1]
  16. inval
  17. alladd <- sapply(1:(length(input) - 1), function(x) {
  18. sapply((x + 1):length(input), function(y) {
  19. sel <- input[x:y]
  20. if (sum(sel) == inval) {
  21. print(sel)
  22. print(min(sel) + max(sel))
  23. }
  24. return(sum(sel))
  25. })
  26. })