일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자료구조공부
- 스프링부트
- nestjs스터디
- 알고리즘공부
- DDD
- 스프링부트공부
- JPA
- 자바공부
- nestjs공부
- 플러터 공부
- Flutter
- 스프링공부
- Kafka
- querydsl
- JPA예제
- 기술공부
- 스프링
- JPA 공부
- 기술면접공부
- 코테공부
- 카프카
- Axon framework
- K8S
- 프로그래머스
- 코테준비
- JPA공부
- 스프링 공부
- 플러터 개발
- nestjs
- JPA스터디
- Today
- Total
목록BFS예제 (2)
DevBoi
https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 간단하게 , DFS와, BFS의 동작 방식에 대해서 개념을 잡는 가장 기초적인 예제이다. 우선 최단 경로찾기에 대한 솔루션으로 알고있는 DFS는, 재귀형태로 구현하는 것이다. 즉, 가장 깊이 노드를 탐색하는 것이다. 어떤 노드를 탐색하고, 특정 노드에 대한 다음 탐색노드를 인자로 넣어서 바로 다음 탐색 노드로 함수를 호출하는 형태이다. 또, BFS는 탐색 가능..
DFS 깊이 우선 탐색이다. 어떤 노드나 행렬이 주어지면, 해당 노으나 행렬에 대한 값을 최대로 깊이 탐색하고, 그다음 노드로가는방법이다. 나는 그림으로 이해하는게 편해서 그림으로 남겨놓으려고한다. 그림이 좀 웃기지만 뭔가 이렇게 이해하는게 편하다 코드를 짤때 생각해야하는 구조로 다시 그려보자 우선 각 노드별로, ArrayList로 각 노드들이 가지는 인접한 것들을 구한다. 역시나 개떡같지만 ㅋ 이 걸 가지고 생각해보는 그림은 처음에 1부터 시작을 하면, 2로가고 2가 3으로가고 3에서 2로가려고하지만, 기존에 2에서 check를 해놨기 때문에 1로, 1도 체크해놨기 떄문에 4로 4는 모든걸 다 check가 되어있기 때문에 out이된다라고 생각하면 된다. 자 공부는 여기까지하고 예제 부터 풀어보자 htt..