BFS

CS/알고리즘 문제 풀이

[백준] 9205 - 맥주 마시면서 걸어가기 [Python(파이썬)]

문제 www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 풀이 문제에 50m, 20병 등과 같은 제약조건들이 덧붙여져 있어 헷갈릴 수 있는 문제였다. 쉽게 말하자면, 편의점 혹은 페스티벌 좌표까지의 거리가 1000m이하여야 한다는 의미였다. 문제 분류는 BFS&플로이드-와샬 알고리즘이었지만, 나는 BFS 개념에 그리디 알고리즘을 적용시켜서 풀어봤다. 먼저 시작 좌표를 큐에 담은 뒤, 계속 pop하면서 목적지까지의 거리가 1000m이하인지 체크한다. 만약 목..

CS/알고리즘 이론

[알고리즘] 그래프 순회(Graph Traversal)

그래프 순회란? 그래프 순회란 그래프 탐색(Search)라고도 일컫으며 그래프의 각 정점을 방문하는 과정을 의미하며, 크게 깊이 우선 탐색(DFS, Depth-First Search)과 너비 우선 탐색(BFS, Breadth-First Search)으로 나뉜다. DFS는 주로 스택이나 재귀로 구현하며 백트래킹 알고리즘에 사용된다. 반면에 BFS는 주로 큐로 구현하며 그래프의 최단 경로를 구하는 문제 등에 사용된다. 깊이 우선 탐색(DFS) 일반적으로 DFS는 스택으로 구현하며, 재귀를 이용하면 좀 더 간단하게 구현할 수 있다. 실제로 코딩 테스트에서는 재귀를 이용한 구현이 더 선호되는 편이다. 재귀적 구조로 구현 먼저 재귀 구조로 DFS를 구현해보자. 슈도코드는 다음과 같다. RecursiveDFS(v)..

코택
'BFS' 태그의 글 목록