Menu
Coddy logo textTech

מסלולים ברשת

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-R של Coddy. שיעור 64 מתוך 64.

challenge icon

אתגר

קשה

השלם את count_paths(grid). grid היא מטריצה של 0 (תאים פתוחים) ו־1 (קירות). מסלול מתחיל בתא השמאלי העליון, מסתיים בתא הימני התחתון, נע רק ימינה או למטה, ולעולם אינו נכנס לקיר. החזר שתי שורות: Paths: עם מספר המסלולים השונים, ו־Steps: עם מספר הצעדים בכל מסלול (לכל המסלולים אותו אורך), או Steps: none כשאין מסלול.

בנה מטריצה ways באותו גודל, שבה כל תא מכיל את מספר המסלולים שמגיעים אליו: תא פתוח מקבל את סכום הערכים בתא שמעליו ובתא שמשמאלו, וקיר מקבל 0.

הקוד שסופק קורא את המטריצה משורה אחת: השורות מופרדות באמצעות ; והערכים בכל שורה באמצעות ,. הוא מדפיס כל שורה שהוחזרה.

נסו בעצמכם

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 אונליין