오랜만에 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)
'여니의 취준 준비 > 코딩테스트 (Python)' 카테고리의 다른 글
[n14503] 로봇 청소기 in python (0) | 2021.10.22 |
---|---|
[n6603] 로또 in python (0) | 2021.10.21 |
[n14889] 스타트와 링크 in python (0) | 2021.10.20 |
[n2535] 아시아 정보올림피아드 in python (0) | 2021.10.18 |
[n1292] 쉽게 푸는 문제 in python (0) | 2021.10.18 |