알고리즘/BFS,DFS(2)
-
늑대와 양
문제부터 파악해보자 1. 크기가 R*C인 목장이 있다. 2. 각각의 칸에는 비어있거나, 양 또는 늑대가 존재 2-1. 양은 이동하지 않고 지키고 있다. 늑대는 인접한 칸을 자유롭게 이동 가능 3. 목장에 울타리를 설치해서 양이 있는 칸으로 늑대가 못가게 막으려고 한다. 입력 1. 첫째줄: 목장 크기 R,C 주어짐 2. 둘째 줄: R개의 줄에 목장의 상태가 주어진다. .은 빈칸, S는 양, W는 늑대 출력 첫째줄: 늑대가 양이 있는 칸으로 갈수 없게 할 수 있다면 1, 갈 수 있다면 0 둘째줄: R개의 줄에 목장의 상태를 출력한다. 울타리는 'D'로 출력한다. 1. 당연히 우선너비탐색이 떠오름 - 전에 게시물이랑 매커니즘은 비슷하다. 2. 첫째줄에 갈 수 있냐 없냐 이분법이다. 둘 중 하나니깐 기본값을 Y..
2023.03.20 -
BFS
정의 : 우선 너비 탐색 : 루트 노드나 임의의 노드에서 인접한 노드를 모두 먼저 확인한 후 다음 depth를 탐색 : 큐를 사용해서 데이터 탐색 조건 : 1번 정점을 root 노드로 하여 1번부터 탐색을 시작한다. : 번호가 작은 정점부터 탐색한다. 백준 2178번 미로탐색 문제 N,M 크기의 배열로 표현되는 미로가 있다. 미로에서 1은 이동할 수 있다. 0은 이동할 수 없다. 이때 (1,1)에서 출발해서 N,M의 위치로 이동할 때 지나야 하는 최소의 칸수를 구해라 입력 첫째 줄에 두 정수 n,m이 주어진다. n개의 줄에는 m개의 정수로 미로가 주어진다. 출력 첫째 줄에 지나야하는 최소 칸수 from collections import deque N, M = map(int, input().split())..
2023.03.20