[イコール]体現-王室の夜
🔔 質問する
幸福王国の王室庭園はチェス盤のような8×8座標平面です.ナイトは王室の庭の特定の部屋に立っている.ナイトはとても忠実な臣下で、毎日武術を練習しています.ナイトは乗馬中なので、移動時はL字形でしか移動できず、庭の外から出られません.特定の場所から次の2つの状況に移動できます.
このような8×8座標平面上でノードの位置を指定し、ノードが移動可能である場合は、その数を出力するプログラムを作成します.このとき,王室の庭における行為を表現する位置は1から8であり,表現列の位置はaからhである.
たとえば、あるノードがa 1上で移動可能である場合、次の2つのケースがあります.a 1の位置は座標平面上の隅に相当する位置にあるため、庭の外から出られないことが多い.
入力
しゅつりょく
🎯 解答方法
この問題はナイトが移動できる経路を1つずつ決定すればよい.ただし、8 x 8座標平面から逸脱しないように注意深くチェックする必要があります.ナイトは彼が2つのルートで移動できると言った.
ある夜の移動経路をmove type変数に入れると、この2つのルールに従ってmove type=[(-2,1)、(-2,1)、(2-1,2)、(-1,2)、(1-2)、(1,2)、(1,2)、(1,2)、(1,2)、(1,2)]]に値を代入できます.現在の位置を基準にして、下と右は正の値で、上と左は負の値の結果です.ナイトの現在の位置が指定されている場合は、現在の位置に移動パスを追加し、8 x 8座標平面上にあるかどうかを確認できます.
💻 Pythonコード
n = input()
row = int(n[1])
col = int(ord(n[0])) - int(ord('a')) + 1
move_type = [(-2,1),(-2,-1),(2,1),(2,-1),(-1,2),(-1,-2),(1,-2),(1,2)]
answer = 0
for x, y in move_type:
nrow = row + x
ncol = col + y
if nrow >= 1 and nrow <= 8 and ncol >= 1 and ncol <= 8:
answer += 1
print(answer)
Reference
この問題について([イコール]体現-王室の夜), 我々は、より多くの情報をここで見つけました https://velog.io/@subinmun1997/이코테-구현-왕실의-나이트テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol