목록BFS (32)
기록방
👉 문제링크 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 🔸 문제 분석 🔸 10 x 10 게임판에서 100개의 칸 중 첫 칸에서 마지막 칸 까지 가야한다. 주사위 값을 원하는 대로 던질 수 있다. 사다리를 만나면 연결 된 칸으로 내려가고, 뱀을 만나면 연결 된 칸으로 올라간다. 사다리와 뱀이 겹치거나 연속 된 곳은 없다. 주사위 경우의 수를 BFS로 모두 확인하며 도착하는 최단 경로를 구한다. 🔸 코드 🔸 import java.io.BufferedReader; ..
👉 문제링크 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 🔸 문제 분석 🔸 N x M 보드판에 모서리는 막혀있고, 빨간 공 : R, 파란 공 : B, 구멍 : O 가 주어진다. 보드판을 기울이면 두 공이 움직일 수 있는 공간 끝까지 한쪽으로 이동한다. 빨간 공 만 구멍으로 뺄 수 있으면 1, 없으면 0 을 출력한다. 보드판을 기울이는 4가지 선택에 따른 결과를 확인해야 하므로 BFS를 사용한다. 공의 굴러감, 게임 종료 확인을 시뮬레이션한다. 🔸 코드 🔸 i..
👉 문제링크 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 🔸 문제 분석 🔸 N x N 공간에 물고기 M마리와 아기 상어 1마리가 있다. 아기 상어가 최단 거리로 물고기를 모두 먹은 시간을 출력한다. 물고기의 수가 맵 정보를 입력받아야 알 수 있으므로 ArrayList에 저장한다. 남은 물고기가 여러 마리 일 때 아기 상어는 먹을 수 있는 가장 가까운 물고기를 찾아가는데, 그런 물고기가 여러 마리 일 때는 위쪽, 그 중에서도 왼쪽부터 먹으러 간다. 물고기를 저장 할 때 한 열씩 차례대로 확인했으면 Ar..
👉 문제링크 13459번: 구슬 탈출 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 🔸 문제 분석 🔸 N x M 보드판에 모서리는 막혀있고, 빨간 공 : R, 파란 공 : B, 구멍 : O 가 주어진다. 보드판을 기울이면 두 공이 움직일 수 있는 공간 끝까지 한쪽으로 이동한다. 빨간 공 만 구멍으로 뺄 수 있으면 1, 없으면 0 을 출력한다. 보드판을 기울이는 4가지 선택에 따른 결과를 확인해야 하므로 BFS를 사용한다. 공의 굴러감, 게임 종료 확인을 시뮬레이션한다. 🔸 코드 🔸 imp..
👉 문제링크 17141번: 연구소 2 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 승원이는 연구소의 특정 위치에 바이러스 M개를 놓을 것이고, 승원이의 신호와 동시에 바이 www.acmicpc.net 🔸 문제 분석 🔸 N x N 연구소에서 M개의 바이러스가 모두 퍼지는 최소 시간을 출력한다. 바이러스를 놓을 수 있는 곳 : 2 , 빈 공간 : 0, 벽 : 1 2의 개수는 10 이하의 자연수이다. 모두 놓을 수 없는 경우는 -1을 출력한다. 바이러스를 놓을 수 있는 2가 적힌 자리들 중 M개를 뽑아야 하므로 조합이다. 바이러스가 퍼지는 것을 구현하기 위해서 BFS를 사용한다. 🔸 코드 🔸 import java.io.BufferedReader; import j..