R과 함께 코드 2020-03의 출현
9306 단어 adventofcoderstats
[면책 조항] 분명히 이 게시물에는 Advent of Code에 대한 큰 스포일러가 포함되어 있습니다.
지침
1 단계
.
는 정사각형, #
는 나무입니다. #
를 만났습니까? 2 단계
이것을 반복하되 단계 스키마를 수정하십시오.
전체 지침은 https://adventofcode.com/2020/day/3 에서 찾으십시오.
R 솔루션
1부
library(purrr)
n_trees <- function(
by_x = 1,
by_y = 3
){
ipt <- read.delim( "2020-03-aoc.txt", header = FALSE, stringsAsFactors = FALSE)
# Building the path
# x need to go from 1 to nrow(ipt), 1 by 1
x <- seq(1, nrow(ipt), by = by_x)
# y needs to start at 1, and go by 3 steps until we have length(x) steps
y <- seq(1, by = by_y, length.out = length(x))
list(
x = x,
y = y
) %>%
pmap_dbl(~ {
# Which x step are we in?
row <- ipt[..1,]
# If the row isn't wide enough, expand it until it is
# There is probably a better way to do that but I'm not
# sure I want to spend 5 minutes trying stuff that will
# save me half a micro second
while(nchar(row) < ..2){
row <- paste0(row, row)
}
# Split the damn thing
row <- strsplit(row, "")[[1]]
# look for the y, is it a tree?
if (row[..2] == ".") return(0)
if (row[..2] == "#") return(1)
}
) %>% sum()
}
n_trees()
## [1] 278
두 번째 부분
data.frame(
x = c(1, 1, 1, 1, 2),
y = c(1, 3, 5, 7, 1)
) %>%
pmap_dbl(~ n_trees(..1, ..2)) %>%
reduce(`*`)
## [1] 9709761600
Reference
이 문제에 관하여(R과 함께 코드 2020-03의 출현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/colinfay/advent-of-code-2020-03-with-r-28pb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)