BFS(9)
-
[백준/2178/Java] 미로탐색 - BFS 풀이
문제 www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 문제를 먼저 풀고 오신 다음에 풀이를 보시는 것을 추천드립니다. 이 문제의 풀이는 BFS/DFS 외에도 다양한 방법이 있을 수 있으며 제가 보여드리는 풀이는 그 중 하나입니다. 문제분석 1은 이동할 수 있는 칸이고, 0은 이동할 수 없는 칸입니다. (1, 1)에서 출발하여 (N, M) 위치로 이동할 때 지나야 하는 최소 칸 수를 구해야 합니다. 입력 첫째 줄에 N, M이 주어집니다. (2 0 && d[i][j - 1] == '1' && ..
2021.01.29 -
[백준/7576/Java] 토마토 - BFS 풀이
문제 www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 문제를 먼저 풀고 오신 다음에 풀이를 보시는 것을 추천드립니다. 이 문제의 풀이는 BFS 외에도 다양한 방법이 있을 수 있으며 제가 보여드리는 풀이는 그 중 하나입니다. 이 글은 BFS 알고리즘으로 2차원 배열을 사용해서 푸는 것을 알아보는 글이라서 BFS로 풀어보겠습니다. 문제분석 하루가 지나면 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들이 익습니다. 인접한 곳은 왼쪽, 오른쪽,..
2021.01.28 -
[백준/1697/Java] 숨바꼭질 - BFS 풀이
BFS (너비 우선 탐색, Breadth-First Search) 알고리즘에서 기본적인 문제 하나를 풀어보도록 하겠습니다. 문제 1697번: 숨바꼭질 (acmicpc.net) 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제를 먼저 풀고 오신 다음에 풀이를 보시는 것을 추천드립니다. 이 문제의 풀이는 BFS 외에도 다양한 방법이 있을 수 있으며 제가 보여드리는 풀이는 그 중 하나입니다. 이 글은 BFS 알고리즘으로 1차원 배열을 사용해서 푸는 것을 알아보는 글이라서 BFS로 풀어..
2021.01.21