[イコール]体現-王室の夜
これが符号化テストであり,Che 04が実施する実際の問題である.
4-2王室の夜
問題の説明
王室庭園とチェス盤は8×8座標平面です.
ナイトが特定の格子に立っているとき,ナイトが移動できれば数を求める.
ナイトはL字形でしか移動できず、庭を離れることはできません(map).
1.2つの水平グリッドを移動した後、1つの垂直グリッドを移動
2.2つの垂直グリッドを移動した後、1つの水平グリッドを移動
Input
loc->str:night現在位置の座標.2文字からなる:ex)a 1
Output
cnt->int:ナイトが移動可能な場合の数
Limit
time : 1 second
memory : 128 MB
インプリメンテーションコード
Analysis
時間複雑度:O(1)
空間複雑度:O(1)
4-2王室の夜
問題の説明
王室庭園とチェス盤は8×8座標平面です.
ナイトが特定の格子に立っているとき,ナイトが移動できれば数を求める.
ナイトはL字形でしか移動できず、庭を離れることはできません(map).
1.2つの水平グリッドを移動した後、1つの垂直グリッドを移動
2.2つの垂直グリッドを移動した後、1つの水平グリッドを移動
Input
loc->str:night現在位置の座標.2文字からなる:ex)a 1
Output
cnt->int:ナイトが移動可能な場合の数
Limit
time : 1 second
memory : 128 MB
インプリメンテーションコード
Analysis
時間複雑度:O(1)
空間複雑度:O(1)
def solve(loc):
# 나이트가 맵 안에서 L자로 이동할 수 있는 좌표의 수 구하기
cnt = 0
limit = 8
x, y = ord(loc[0]) - ord("a"), int(loc[1]) - 1
steps = [
[-1, 2], [2, -1], [-1, -2], [-2, -1],
[1, 2], [2, 1], [1, -2], [-2, 1]
]
# 이동 가능한 8방위의 좌표로 이동했을 때 맵을 벗어나지 않는다면 카운트
for dx, dy in steps:
if (0 <= x + dx < limit) and (0 <= y + dy < limit):
cnt += 1
return cnt
テストコードclass testSolve(unittest.TestCase):
def testcase(self):
self.assertEqual(solve("a1"), 2)
unittest.main()
Reference
この問題について([イコール]体現-王室の夜), 我々は、より多くの情報をここで見つけました https://velog.io/@lsmman/이코테-구현-왕실의-나이트テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol