여니의 취준 준비/코딩테스트 (Python)

[n14248] 점프 점프 in python

여니's 2021. 10. 20. 22:04


오랜만에 bfs 문제를 접했다..!

역시나 오늘도 헤맸다 !.!

 

 

문제 해석하기

1 4 2 2 1 (시작점 idx 2 )
2 -> 왼쪽 1 o
            -> 오른쪽 4 o
    -> x
      -> 오른쪽 1 o
         -> 왼쪽 2 o
             -> 왼쪽 4 o


o의 개수 = 5

 

from collections import deque

n = int(input())
array = list(map(int, input().split()))
start = int(input()) - 1
visited = [0] * n
result = 0


def bfs(start):  # start=idx
    global result
    queue = deque()
    queue.append(start)
    visited[start] = 1
    result+=1

    while queue:
        node = queue.popleft()
        for i in [-array[node], array[node]]:
            temp = node + i
            if 0 <= temp < n and visited[temp] == 0:
                queue.append(temp)
                result += 1
                visited[temp]=1

bfs(start)
print(result)