- 오늘의 학습 키워드
- 공부한 내용 본인의 언어로 정리하기
BFS 너비 우선 탐색을 활용
모든 0인 셀들을 시작점으로하여 동시에 BFS를 수행
각 0 에서 출발하여 인접한 셀들로 거리를 전파
이미 방문한 셀은 더 가까운 거리가 이미 계산 되었으므로 건너뜀
수도코드
결과 배열을 무한대로 초기화
큐 생성
모든 셀을 순회하면서:
-0인 셀 -> 거리 0으로 설정, 큐에 추가
BFS 수행:
-큐가 빌 때 까지:
-현재 위치 poll
-4방향 인접 셀 확인
-더 짧은거리로 갱신 가능하면:
거리 갱신
큐에 추가
- 오늘의 회고
- 어떤 문제가 있었고, 나는 어떤 시도를 했는지
DFS 인줄 알았는데 BFS가 더 효율적이라고함
- 어떻게 해결했는지
BFS는 레벨별로 탐색하므로 처음 도달한 거리가 최단거리이다.
DFS는 모든 경로를 고려해야하므로 비효율적, 재귀 스택이 길어줄수 있
- 무엇을 새롭게 알았는지
BFS 큐에 현재 레벨의 노드들만 저장할 수 있따.
DFS: 재귀 스택이 길어질수 있다.
poll의 역할
큐에서 제거하여 중복 처리를 방지한다. 지금 처리할 위치를 가져오고 큐에서 제거하는 역
BFS 레벨 진행
거리 0인 위치들-> 거리 1인 위치들-> 거리 2인 위치
- 내일 학습할 것은 무엇인지
'【스터디노트】 > ▷TIL' 카테고리의 다른 글
코테 스터디 34일차 TIL + 오늘의 학습 키워드 슬라이딩윈도우 (0) | 2025.05.26 |
---|---|
코테 스터디 33일차 TIL + 오늘의 학습 키워드 유클리드 거리 (0) | 2025.05.23 |
코테 스터디 31일차 TIL + 오늘의 학습 키워드 선형탐색 (0) | 2025.05.21 |
코테 스터디 30일차 TIL + 오늘의 학습 키워드 Dynamic Programming (0) | 2025.05.15 |
코테 스터디 29일차 TIL + 오늘의 학습 키워드 linkedList (0) | 2025.05.14 |