목록BFS (5)
종식당

https://www.acmicpc.net/problem/5427📝 문제 설명사람은 #(벽)을 이동할 수 없으며 *(불)을 피해서.(빈 공간)만을 이동할 수 있다. 사람은 불이 있는 칸과 이제 불이 번지려는 칸을 피해서 경계선에 도착해 탈출해야 한다. 사람은 불이 먼저 이동하고 그 후에 이동해야 한다. 이는 1초가 걸린다. 탈출하는데 가장 빠른 시간을 출력하고 탈출을 하지 못하면 IMPOSSIBLE을 출력하면 된다.✨ 제출 코드import java.io.*;import java.util.*;public class Main{ static int [] dx = {-1,1,0,0}; static int [] dy = {0,0,-1,1}; static int w,h; static char..

https://www.acmicpc.net/problem/2206📝 문제 설명(1,1)에서 (N, M)까지 이동하는데 해당 칸이 1은 벽이 있어 이동할 수 없고 0인칸만 이동할 수 있다. 이때, 시작하는 칸과 끝나는 칸을 포함해서 최단거리를 구해야 한다.이 문제에서 벽을 한번 깰 수 있는 기회가 있다. 벽을 깨서 기존의 거리 보다 최단 거리를 구할 수 있다면 1번 깰 수 있다.✨ 제출 코드import java.io.*;import java.util.*;public class Main { static int [][] graph; static int N; static int M; static boolean [][][]visited; static int [] dx = {-1,1,0..

https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr📝 문제 설명캐릭터가 적 팀의 진영까지 이동하는 가장 빠른 길의 거리를 반환하면 된다.가장 빠른 길의 칸 수를 계산하면 되며 적 팀의 진영까지 도달할 방법이 없으면 -1을 반환하면 된다.✨ 제출 코드import java.util.*;class Solution { static int [] dx = {-1,1,0,0}; static int [] dy = {0,0,-1,1}; static int n; static int m..

https://www.acmicpc.net/problem/7562문제설명먼저 첫 번째 줄에 테스트 케이스의 개수를 입력받고 이 테스트 케이스만큼 차례대로 체스판의 크기, 나이트가 현재 있는 칸의 좌표, 나이트가 이동하려는 칸의 좌표를 입력받는다.각 테스트 케이스마다 나이트가 최소 몇번만에 현재 칸에서 목표 칸 까지 이동하는지 구하면 된다.제출코드 import java.util.*;import java.io.*;public class Main { static int l; static int start_x, start_y, end_x, end_y; static int [] dx = {-2,-1,1,2,-2,-1,1,2}; static int [] dy = {1,2,2,1,-1,-..

https://www.acmicpc.net/problem/7562문제설명시작 좌표와 도착 좌표가 주어지면 나이트가 최소 몇 번을 이동해야 하는 지를 출력해야 하는 문제이다.제출코드from collections import dequeimport sysinput = sys.stdin.readlinedx = [-2,-1,1,2,2,1,-1,-2] #이동할 수 있는 x좌표dy = [1,2,2,1,-1,-2,-2,-1] #이동할 수 있는 y좌표def bfs(l,a,b,c,d): map = [[-1]*l for _ in range(l)] #초기에 모든 좌표 -1설정 map[a][b] = 0 #시작점 0으로 설정 dq = deque() dq.append((a,b)) while dq: ..