[python]プログラマ(Lv 2)-アクセス長
こんにちは:
https://programmers.co.kr/learn/courses/30/lessons/49994
この問題は、座標と移動する座標のセットにアクセスしたかどうかを確認することによって解決されます.
初期座標は(5,5)です.
問題の例が1番のコマンド(L)の場合、(5,4)と(5,5)の間にアクセスします.
順番は関係ないので両方チェックすればいいです
(5, 4) (5, 5)
(5, 5) (5, 4)
https://programmers.co.kr/learn/courses/30/lessons/49994
に答える
この問題は、座標と移動する座標のセットにアクセスしたかどうかを確認することによって解決されます.
初期座標は(5,5)です.
問題の例が1番のコマンド(L)の場合、(5,4)と(5,5)の間にアクセスします.
順番は関係ないので両方チェックすればいいです
(5, 4) (5, 5)
(5, 5) (5, 4)
d = {
'U': [-1, 0],
'D': [1, 0],
'R': [0, 1],
'L': [0, -1]
}
def solution(dirs):
check = set()
pos = [5, 5]
ans = 0
for dir in dirs:
x, y = pos
dx, dy = d[dir]
new_x , new_y = x + dx, y + dy
key_1 = f'{x}{y}{new_x}{new_y}'
key_2 = f'{new_x}{new_y}{x}{y}'
if 0 <= new_x <= 10 and 0 <= new_y <= 10:
pos = [new_x, new_y]
if key_1 not in check:
ans += 1
check.add(key_1)
check.add(key_2)
return ans
Reference
この問題について([python]プログラマ(Lv 2)-アクセス長), 我々は、より多くの情報をここで見つけました https://velog.io/@kerri/Python-프로그래머스Lv2-방문-길이テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol