あしあと問題
締め切りが 2017/03/09 10:00 AM なので,その 1 分後に投稿されるように予約が
仕様
9x9のマップの中を標準入力の内容に応じて移動します。
移動するとあしあとが残ります。
どのようなあしあとが残ったか標準出力してください。
標準入力
・「^v<>」のどれかの文字を組み合わせた文字列が入力されます
・ ^ は上に移動です
・ v は下に移動です
・ < は左に移動です
・ > は右に移動です
例
>>>>>>>>vvvvvvvv<<<<<<<<^^^^^^^^
標準出力
・9文字x9行の文字列を出力してください
・1行目1文字目の位置をスタート地点とします
・スタート地点は必ず「あしあと」が残ります
・同じ場所を2回通った場合は「あしあと」が残ります
・移動した場所は「Y」(半角大文字のワイ)を出力してください。鳥の足跡をイメージしています。
・移動しなかった場所は「x」(半角小文字のエックス)を出力してください
例(標準入力の説明の入力が行われた場合の出力結果)
YYYYYYYYY
YxxxxxxxY
YxxxxxxxY
YxxxxxxxY
YxxxxxxxY
YxxxxxxxY
YxxxxxxxY
YxxxxxxxY
YYYYYYYYY
その他の仕様
・標準入力の末尾には改行があります
・標準出力の末尾に改行をつけてください
・移動回数は最大で48回です
・標準入力の仕様で説明した内容以外の入力は行われません(不正入力に対するチェックは不要)
・9x9からはみ出す位置への移動をするような入力は行われません(不正入力に対するチェックは不要)
=============
f = function(S) {
x = y = 1
m = matrix("x", 9, 9)
m[x, y] = "Y"
S = unlist(strsplit(S, ""))
for (s in S) {
if (s == ">") {
x = x+1
} else if (s == "<") # < は半角で
x = x-1
} else if (s == "v") {
y = y+1
} else if (s == "^") {
y = y-1
}
m[x, y] = "Y"
}
for (i in 1:9) {
cat(sprintf("%s\n", paste(m[,i], collapse="")))
}
}
# f(readLines(file("stdin", "r")))
f(">>>>>>>>vvvvvvvv<<<<<<<<^^^^^^^^")
f(">>vv>>vv>>vv>>vv")
f(">>>><vvv")
最新の画像[もっと見る]
- さぬきうどん 山よし 佐文店 11時間前
- さぬきうどん 山よし 佐文店 11時間前
- 算額(その1394) 22時間前
- 算額(その1393) 1日前
- 和算の心(その008) 1日前
- ぶっかけうどん はな庄 1日前
- ぶっかけうどん はな庄 1日前
- 晴屋製麺所 2日前
- 晴屋製麺所 2日前
- 算額(その1391) 3日前
※コメント投稿者のブログIDはブログ作成者のみに通知されます