java 346

[도구정리] DFS, BFS

DFS(깊이 우선 탐색) and BFS(너비 우선 탐색) 두 가지 모두 조건에 부합하는 정답을 찾기 위해 탐색을 실행하는 알고리즘이다. BFS는 너비 우선 탐색을 진행한다. 위의 그림을 보면 루트 노드에서 시작해서 인접한 노드 순으로 방문하며 탐색을 진행하는 것이다. 따라서 루트 노드인 A에서 시작하여 그다음 인접 노드 B, C, D를 탐색한 후 그것의 인접 노드인 E, F 순으로 탐색을 마친다. -> 주로 두 노드 사이의 최단 거리 탐색에 많이 사용된다. DFS는 깊이 우선 탐색을 진행한다. 그림에서 알 수 있듯, A를 탐색하면 그 다음 노드인 BCD 중 하나를 탐색 후 그 분기에 대한 완전 탐색을 마친 뒤에야 다음 분기로 진행하는 것이다. ->예를 들면, 미로를 따라가다가 길이 막히면 다시 돌아와서 ..

[백준]1620번. 나는야 포켓몬 마스터 이다솜(JAVA)

https://www.acmicpc.net/problem/1620 풀이 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; st = new StringTokenizer(br.readLine()); int n = Integer.parseInt(st.nextToken()); int m = Integer.parseInt(st.nextToken()); HashMap name = new Ha..

[백준]9996번. 한국이 그리울 땐 서버에 접속하지(JAVA)

https://www.acmicpc.net/problem/9996 문제 풀이 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); StringTokenizer st = new StringTokenizer(br.readLine(), "*"); String head = st.nextToken(); String tail = st.nextToken(); ..