[Programmers]外壁****を確認する
from collections import deque
def solution(n, weak, dist):
dist.sort(reverse=True)
q = deque([weak])
visited = set()
visited.add(tuple(weak))
for i in range(len(dist)):
d = dist[i]
for _ in range(len(q)):
current = q.popleft()
for p in current:
l = p
r = (p + d) % n
if l < r:
temp = tuple(filter(lambda x: x < l or x > r, current))
else:
temp = tuple(filter(lambda x: x < l and x > r, current))
if len(temp) == 0:
return (i + 1)
elif temp not in visited:
visited.add(temp)
q.append(list(temp))
return -1
右に向かって左に向かって考えるべきだと思いますが、そうしなければならない必要はありません.すべての点から出発するので、一つの方向に考えればいいです!
新しいリストを作成してから、
v = new
に再割り当てせずにlen(v)
をポップアップする方法もあります.顔つきReference
この問題について([Programmers]外壁****を確認する), 我々は、より多くの情報をここで見つけました https://velog.io/@jujube0/Programmers-외벽점검テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol