class Solution:
def minJumps(self, arr: List[int]) -> int:
n = len(arr)
v = [-1 for _ in range(n)]
d = {}
q = deque([0])
v[0] = 0
for i in range(n):
if arr[i] not in d:
d[arr[i]] = [i]
else:
d[arr[i]].append(i)
while q:
cur = q.popleft()
if arr[cur] in d:
same = d.pop(arr[cur])
for j in range(len(same)):
if v[same[j]] == -1:
q.append(same[j])
v[same[j]] = v[cur] + 1
if cur > 0 and v[cur-1] == -1:
q.append(cur-1)
v[cur-1] = v[cur] + 1
if cur < n-1 and v[cur+1] == -1:
q.append(cur+1)
v[cur+1] = v[cur] + 1
return v[-1]
왜 단순 BFS 문제가 Hard를 달고 나오는거지?
예전에도 이랬던 적이 있었던거 같긴 한데..
댓글 0