백준 1194 "달이 차오른다, 가자" (JAVA)
·
알고리즘(JAVA)
🔍 문제링크https://www.acmicpc.net/problem/1194📌 문제 요약N x M 크기의 미로에서 상근이가 출구('1')까지 도달하는 최소 이동 횟수를 구하는 문제미로에는 벽(#), 빈 공간(.), 열쇠(a~f), 문(A~F)이 존재한다.상근이는 빈 공간(.)과 열쇠(a~f)를 자유롭게 이동할 수 있다.문(A~F)는 해당하는 열쇠(a~f)를 획득해야만 통과 가능하다.출구('1')에 도달할 수 없는 경우 -1을 출력한다.🛠 풀이 및 알고리즘1️⃣ BFS (너비 우선 탐색) 활용 → 최단 거리 탐색미로에서 최단 거리를 구하는 문제이므로 BFS(너비 우선 탐색)를 사용한다.2️⃣ 비트마스킹을 활용한 열쇠 상태 관리1. 열쇠(a~f)를 비트로 변환 미로에는 최대 6개의 열쇠(a~f)가 존재..
백준 2206 "벽 부수고 이동하기" (JAVA)
·
알고리즘(JAVA)
🔍 문제링크https://www.acmicpc.net/problem/2206📌 문제 요약N x M 크기의 맵에서 (0,0)에서 (N-1, M-1)까지 최단 경로를 찾는 문제.벽(1)을 한 번만 부수고 이동 가능.빈 칸(0)은 자유롭게 이동 가능.이동할 수 있는 최단 거리를 출력 (-1이면 도달 불가능)🛠 풀이 및 알고리즘 ( BFS + 3차원 visited 배열)BFS를 활용하여 최단 거리 탐색`Point(x, y, isBroken)` 클래스 사용 → 벽을 부순 상태(isBroken)를 추가로 저장.3차원 visited 배열 (visited[n][m][2]) 사용`visited[x][y][0]` →벽을 부수지 않고 방문한 경우.`visited[x][y][1]` → 벽을 부수고 방문한 경우.벽을 부순..
백준 5427 "불" (JAVA)
·
알고리즘(JAVA)
🔍 문제링크https://www.acmicpc.net/problem/5427📌 문제 요약건물 내부에서 불이 확산하는 상황에서 상근이가 탈출할 수 있는 최소 시간을 구하는 문제.벽('#')은 이동 불가, 빈 공간('.')은 이동 가능.불(*)은 상하좌우로 확산하며, 상근이(@)도 상하좌우로 이동 가능.불이 이동한 후, 상근이가 이동 → 불보다 먼저 도달해야 탈출 가능.건물 밖으로 나가면 성공, 불가능하면 "IMPOSSIBLE" 출력.🛠 풀이 및 알고리즘 불(fire())을 먼저 BFS로 확산시킴fireTime[i][j]: 불이 도달하는 최소 시간을 저장.fireTime[i][j]의 초기값을 Integer.MAX_VALUE로 설정.불이 이동하면 fireTime[nx][ny] = fireTime[x][y..
5jeong
'BFS' 태그의 글 목록