728x90
알고리즘 문제를 풀면서 BFS를 구현할 때, queue를 주로 사용할 것이다.
queue를 초기화해주기 위해 보통
q = deque([(start_x, start_y)]) # 탐색 시작 노드 큐에 넣기
visited[start_x][start_y] = 0 # 탐색 시작 노드 방문 처리
while q:
x, y = q.popleft()
이렇게 해주고는 하는데, 이 코드를
q = deque([start_x, start_y]) # 탐색 시작 노드 큐에 넣기
visited[start_x][start_y] = 0 # 탐색 시작 노드 방문 처리
while q:
x, y = q.popleft()
가끔 이렇게 작성하는 실수를 할 때가 있다.
이렇게 코드를 작성하면
이런 오류가 발생하고는 한다.
while문에서 popleft를 통해 꺼낸 값을 x,y에 넣어줘야 하는데, 밑 코드의 경우 popleft를 하면 하나의 값만 나오기 때문이다.
실수하지 않도록 하자.
728x90
'알고리즘 > 알고리즘 노트' 카테고리의 다른 글
파이썬 깊은 복사 (0) | 2024.07.01 |
---|---|
반복문 돌릴 때 주의할 것 (0) | 2024.06.18 |
백트래킹의 기본 구조 (0) | 2024.04.09 |
2차원 리스트 입력받기 (0) | 2023.02.17 |
2차원 리스트 회전 (0) | 2023.02.11 |