Caminhos na Grade
Parte da seção Lógica e Fluxo do Journey de R da Coddy. Lição 64 de 64.
Desafio
DifícilComplete count_paths(grid). grid é uma matriz de 0s (células livres) e 1s (paredes). Um caminho começa na célula superior esquerda, termina na célula inferior direita, move-se apenas para a direita ou para baixo e nunca entra em uma parede. Retorne duas linhas: Paths: com o número de caminhos diferentes e Steps: com o número de movimentos em qualquer caminho (todos os caminhos têm o mesmo comprimento), ou Steps: none quando não houver caminho.
Construa uma matriz ways do mesmo tamanho, na qual cada célula contém o número de caminhos que chegam até ela: uma célula livre recebe a soma da célula acima e da célula à sua esquerda, e uma parede recebe 0.
O código fornecido lê a grade a partir de uma linha: as linhas são separadas por ; e os valores de uma linha por ,. Ele imprime cada linha retornada.
Experimente você mesmo
count_paths <- function(grid) {
# Escreva seu código aqui
c("Paths: 0", "Steps: none")
}
# Código de entrada/saída fornecido: mantenha-o como está
input <- suppressWarnings(readLines(file("stdin")))
rows <- strsplit(input[1], ";")[[1]]
grid <- matrix(as.numeric(unlist(strsplit(rows, ","))), nrow = length(rows), byrow = TRUE)
cat(count_paths(grid), sep = "\n")
Todas as lições de Lógica e Fluxo
1Strings em Profundidade
Substrings com substr()Formatação com sprintf()Dividindo e UnindoPesquisando StringsSubstituindo TextoRecapitulação - Criador de Nome de Usuário4Matrizes
Criando MatrizesIndexando MatrizesResumos de Linhas e ColunasAritmética de MatrizesRecapitulação - Tabela de Assentos10Fluxo de Controle Avançado
A Função switch()ifelse() Vetorizadorepeat e breakFunções RecursivasRevisão — Classificador de Notas2Consultas de Chave-Valor
Consultas em Vetores NomeadosVerificando ChavesAdicionando e Removendo ChavesPercorrendo NomesRecapitulação - Mesa de Ações5Projeto - Boletim de Notas
Adicionando AlunosRegistrando Notas3Conjuntos e Contagem
Valores ÚnicosOperações com ConjuntosTestes de PertinênciaContagem com table()Recapitulação - Convidados do Evento6Funções como Valores
Funções AnônimasPassando FunçõesRetornando FunçõesClosures com EstadoRecapitulação - Regras de Desconto9Data Frames
Criando Data FramesColunas e LinhasFiltrando LinhasAdicionando e OrdenandoRecapitulação - Relatório de Vendas12Projeto - Rastreador de Despesas
Registro de DespesasGastos TotaisPratique por conta própria: Compilador de R online