Приміщення
Тож нещодавно я був приблизно на півгодини рано на зустріч і вирішив почекати на вулиці. Я також визначив, що це буде дивно виглядати, якби я просто нерухомо стояв перед будинком. Тому я вирішив піти на швидку прогулянку, в межах обмеженої зони. Я також зробив висновок, що якби я почав ходити по колах, це дало б зрозуміти, що я граю. Тож я надихнувся створити свій перший виклик Code Golf.
Специфікація
Вам буде наданий список, карта місцевості, яка буде містити " "
або "#"
, які являють собою вільні пробіли та певні перешкоди. Вільні пробіли можна перетнути лише один раз, і на це потрібно 1 хвилина. Ваша початкова позиція буде позначена "@"
традицією, що нагадує шахрайство, а ціль буде представлена символом, "$"
тому що ви там збираєтесь втратити. Вам також дадуть ціле число, яке відображатиме скільки хвилин вам доведеться витратити, перш ніж здаватися, ніби ви втручаєтесь. Коли ви приземлитесь на"$"
, це повинно бути точну кількість хвилин (тому, якщо ви відраховували, на сусідній плитці вона повинна бути 1, а на плитці - 0). Завжди можна буде дістатися до пункту призначення. Вашій програмі або функції доведеться повернути список, який показує найкоротший шлях з <,>, ^ і v, щоб представляти чотири можливі напрямки.
Приклади
Вхід:
[[" ", " ", " ", " "],
["@", " ", " ", "$"],
[" ", " ", " ", " "],
[" ", " ", " ", " "]]
і
5
Вихід:
[[">", ">", ">", "v"],
["^", " ", " ", "$"],
[" ", " ", " ", " "],
[" ", " ", " ", " "]]
Вхід:
[[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "],
["@", "#", " ", "$", " "],
[" ", " ", " ", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
і
7
Вихід:
[[" ", "#", " ", " ", " "],
[" ", "#", ">", "v", " "],
["v", "#", "^", "$", " "],
[">", ">", "^", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
Вхід:
[[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "],
["@", "#", " ", "$", " "],
[" ", " ", " ", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
і
17
Вихід:
[[" ", "#", " ", "v", "<"],
[" ", "#", " ", "v", "^"],
["v", "#", " ", "$", "^"],
[">", ">", "v", ">", "^"],
[" ", "#", "v", "^", "<"],
[" ", "#", ">", ">", "^"]]
Правила
- Застосовуються стандартні лазівки
- Кожну плитку потрібно перемістити лише один раз
- Точну кількість часу необхідно провести на дошці
- У випадку кількох шляхів потрібно відображати лише один шлях
- Це кодове питання про гольф, тому найкоротша відповідь виграє
- Відповідно до запитання користувача202729 у коментарях, ви можете припустити правильну інформацію.
Додайте коментар, якщо потрібні додаткові роз'яснення