Menu
Coddy logo textTech

グリッド上の経路

CoddyのRジャーニー「ロジックとフロー」セクションの一部。レッスン 64/64。

challenge icon

チャレンジ

難しい

count_paths(grid)を完成させてください。gridは、0(通行可能なセル)と1(壁)で構成された行列です。経路は左上のセルから開始し、右下のセルで終了します。移動できる方向は右または下のみで、壁には決して入りません。2行を返してください。1行目は異なる経路の数をPaths: とともに出力し、2行目は任意の経路における移動回数(すべての経路の長さは同じ)をSteps: とともに出力します。経路が存在しない場合はSteps: noneとします。

同じサイズのways行列を作成し、各セルにはそのセルに到達する経路の数を格納します。通行可能なセルには、上のセルと左のセルの値の合計を設定し、壁には0を設定します。

提供されたコードは、1行からグリッドを読み取ります。行は;で区切られ、各行の値は,で区切られます。返された各行を出力します。

自分で試してみよう

count_paths <- function(grid) {
  # ここにコードを書いてください
  c("Paths: 0", "Steps: none")
}

# 提供された入出力コード:そのままにしておいてください
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")

ロジックとフローのすべてのレッスン

自分で練習してみよう: Rオンラインコンパイラ