BFS 4

백준(BOJ) 1697 : 숨바꼭질 (실버1) / 자바(Java) 풀이

문제https://www.acmicpc.net/problem/16973줄 요약현재 위치에서 가능한 모든 이동 경우(앞으로, 뒤로, 두 배)들을 큐에 넣어 BFS를 통해 탐색합니다.탐색 중에 동생의 위치(K)에 도달하면 걸린 시간을 출력하고 종료합니다.이미 방문한 위치는 다시 방문하지 않도록 체크하여 무한 루프를 방지합니다.코드// package boj1697;import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws Exception { // System.setIn(new FileInputStream("src/input.txt")); BufferedRe..

Problem_Solving 2024.05.21

백준(BOJ) 2644 : 촌수계산 (실버2) / 자바(Java) 풀이

문제https://www.acmicpc.net/problem/26443줄 요약주어진 사람들의 관계를 인접 행렬로 구성하고, 촌수를 계산할 두 사람을 입력받습니다.DFS(재귀 및 스택)와 BFS(큐)를 사용하여 두 사람 사이의 최소 촌수를 탐색합니다.탐색 결과를 출력하여 두 사람 사이의 촌수를 반환하거나, 연결되지 않은 경우 -1을 반환합니다.코드// package boj2644;import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws Exception { // System.setIn(new FileInputStream("src/input.txt")); ..

Problem_Solving 2024.05.19

백준(BOJ) 2606 : 바이러스 (실버3) / 자바(Java) 풀이

문제https://www.acmicpc.net/problem/26063줄 요약주어진 컴퓨터와 연결 정보를 바탕으로 인접 행렬을 구성합니다.DFS(깊이 우선 탐색) 또는 BFS(너비 우선 탐색)를 이용하여 1번 컴퓨터와 연결된 모든 컴퓨터를 탐색합니다.1번 컴퓨터를 제외한 연결된 컴퓨터의 수를 출력합니다.코드// package boj2606;import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws Exception { // System.setIn(new FileInputStream("src/input.txt")); BufferedReader br = n..

Problem_Solving 2024.05.18

백준(BOJ) 1260 : DFS와 BFS (실버2) / 자바(Java) 풀이

문제https://www.acmicpc.net/problem/12603줄 요약주어진 그래프를 인접 행렬로 표현하고, DFS와 BFS를 통해 시작 정점에서부터 모든 연결된 정점을 탐색합니다.DFS는 재귀와 스택을 이용한 두 가지 방법으로 구현하여 각 정점을 방문하며, BFS는 큐를 이용하여 구현합니다.방문 여부를 확인하는 배열을 사용하여 각 정점의 방문 상태를 추적하고, 탐색 결과를 출력합니다.코드// package boj1260;import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws Exception { // System.setIn(new FileInputStr..

Problem_Solving 2024.05.18