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를 달고 나오는거지?

예전에도 이랬던 적이 있었던거 같긴 한데..