[백준] 16954 : 움직이는 미로 탈출 - JAVA [자바]
·
PS/BAEKJOON
안녕하세요.오늘은 움직이는 미로 탈출 문제를 풀어보도록 하겠습니다. 📌 접근1초가 지난 뒤에는 벽 모양이 바뀌므로, 같은 시간대(초)의 case들을 전부 처리한 한 뒤 벽을 움직여야합니다.따라서 bfs를 사용해야 합니다. 탐색 모양은 dx, dy 배열을 이용하여 정의하였습니다.배열을 벗어나는 위치는 isInRange() 함수로 판별합니다. 큐가 빌 때까지 큐에서 원소를 꺼내는 bfs의 조건에,현재 큐의 사이즈만큼만 꺼내고 다음 시간대(초)의 원소들을 탐색하는 조건을 추가하여 코드를 짰습니다.이는 동시간대의 원소를 전부 처리한 뒤에 벽을 움직이기 위함입니다. 💻 풀이// hyebleeimport java.io.*;import java.util.*;// 최단 경로는 bfs로public class M..
[백준] 13549: 숨바꼭질 3 - JAVA [자바]
·
PS/BAEKJOON
안녕하세요.오늘은 백준의 숨바꼭질 3 문제를 풀어보도록 하겠습니다. 📌 접근최단 거리를 구해야하므로 bfs를 활용하였습니다.또한 값을 늘리는 연산(+1, *2)는 100000을 넘지 않는 조건을,값을 줄이는 연산(-1)은 0보다 작아지지 않는 조건을 걸어야합니다.그래야 할당한 배열의 index를 넘는 오류가 발생하지 않습니다.💻 풀이import java.io.*;import java.util.*;// 최단 경로는 bfs로public class Main { public static int N, K; public static int[] result = new int[100001]; public static void bfs() { Queue queue = new ArrayD..