깊이 우선 탐색 11

C

[BOJ 10026] 적록색약 C++

난이도: Gold 5 번호: 10026 생성일: March 19, 2023 3:09 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ C++ // BOJ 10026 적록색약 #include #include using namespace std; int N; char map[102][102]; bool visit[102][102]; const int dx[] = {0, 0, 1, -1}; const int dy[] = {1, -1, 0, 0}; bool _strchr(string s, char c) { for (char _c : s) if (c == _c) return (1); return (0); } int BFS(int i, int j, string col..

Algorithm/BOJ 2023.03.19

C

[BOJ 1303] 전쟁 - 전투 C++

난이도: Silver 1 번호: 1303 생성일: March 19, 2023 12:31 AM 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ 1303번: 전쟁 - 전투 C++ #include #include using namespace std; int N, M; char map[102][102]; bool visit[102][102]; const int dx[] = {0, 0, 1, -1}; const int dy[] = {1, -1, 0, 0}; int BFS(int i, int j, char c) { queue Q; int cnt = 1; Q.push({i, j}); visit[i][j] = true; while (!Q.empty()) { auto cur ..

Algorithm/BOJ 2023.03.19

C

[BOJ 25516] 거리가 k이하인 트리 노드에서 사과 수확하기 C++

난이도: Silver 2 번호: 25516 생성일: March 9, 2023 2:39 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색, 트리 언어: C++ 25516번: 거리가 k이하인 트리 노드에서 사과 수확하기 C++ #include #include #include using namespace std; int N, K; vector map; vector apple; vector visit; int BFS() { queue Q; Q.push(0); visit[0] = true; int depth = 0; int cnt = apple[0]; while (!Q.empty() && depth < K) { int size = Q.size(); while (size--) { ..

Algorithm/BOJ 2023.03.09

C

[BOJ 2667] 단지번호붙이기 C++

난이도: Silver 1 번호: 2667 생성일: March 8, 2023 11:39 AM 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ 2667번: 단지번호붙이기 C++ #include #include #include #include using namespace std; int N; char map[27][27]; bool visit[27][27]; const int dX[] = {0, 0, -1, 1}; const int dY[] = {-1, 1, 0, 0}; int BFS(int i, int j) { queue Q; int cnt = 1; Q.push({i, j}); visit[i][j] = true; while (!Q.empty()) { auto cu..

Algorithm/BOJ 2023.03.08

C

[BOJ 14248] 점프점프 C++

난이도: Silver 2 번호: 14248 생성일: March 6, 2023 1:14 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ 14248번: 점프 점프 C++ #include #include using namespace std; int N, S; int map[100001]; bool visit[100001]; int BFS() { queue Q; Q.push(S); visit[S] = true; int cnt = 1; while (!Q.empty()) { int cur = Q.front(); Q.pop(); int up = cur + map[cur]; if (up 0 && !visit[down]) { visit[down] = true; Q.pus..

Algorithm/BOJ 2023.03.06

C

[BOJ 21938] 영상처리 c++

난이도: Silver 2 번호: 21938 생성일: February 27, 2023 3:15 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ 21938번: 영상처리 C++ BFS 메모리 시간 6924 kb 400 ms #include #include #include using namespace std; int map[1002][1002]; bool visit[1002][1002]; const int dX[] = {0, 0, -1, 1}; const int dY[] = {-1, 1, 0, 0}; int N, M, T, res; void BFS(int i, int j) { queue Q; Q.push({i, j}); visit[i][j] = true; whi..

Algorithm/BOJ 2023.02.27

C

[BOJ 21736] 헌내기는 친구가 필요해 c++

난이도: Silver 2 번호: 21736 생성일: February 25, 2023 4:28 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ C++ BFS // BOJ 21736 헌내기는 친구가 필요해 #include #include #include using namespace std; int N, M, res; char map[602][602]; bool visit[602][602]; const int dX[] = {1, -1, 0, 0}; const int dY[] = {0, 0, 1, -1}; void BFS(int i, int j) { queue Q; Q.push({i, j}); visit[i][j] = true; while (!Q.empty())..

Algorithm/BOJ 2023.02.25

C

[BOJ 13565] 침투 C++

난이도: Silver 2 번호: 13565 생성일: February 24, 2023 3:37 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ C++ BFS 메모리 시간 3980 kb 28 ms // BOJ 13565 침투 #include #include using namespace std; int N, M; char map[1002][1002]; bool visited[1002][1002]; const int dX[] = {0, 0, 1, -1}; const int dY[] = {1, -1, 0, 0}; void BFS(int i, int j) { queue Q; Q.push({i, j}); visited[i][j] = true; while (!Q.emp..

Algorithm/BOJ 2023.02.25

C

[BOJ 11234] 양 한마리... 양 두마리... C++

난이도: Silver 2 번호: 11123 생성일: February 22, 2023 4:48 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ 11123번: 양 한마리... 양 두마리... C++ BFS를 이용한 풀이 #include #include using namespace std; int T, H, W, res = 0; char node[102][102]; bool visited[102][102]; const int dX[] = {1, -1, 0, 0}; const int dY[] = {0, 0, -1, 1}; void BFS(int i, int j) { // 좌표가 담긴 pair를 담을 queue 생성 queue Q; Q.push({i, j}); v..

Algorithm/BOJ 2023.02.22

C

[BOJ 4963] 섬의 개수 C++

섬의 개수 난이도: Silver 2 번호: 4963 사용 함수, 자료 구조: memset 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ 4963번: 섬의 개수 C++ 상하좌우와 대각선 방향까지 8방 탐색을 할 수 있도록 방향배열(dX, dY)을 설정해준다. const int dX[] = {1, -1, 0, 0, 1, 1, -1, -1}; const int dY[] = {0, 0, -1, 1, 1, -1, 1, -1}; 8방 탐색중에 Out of Bound가 발생할수 있는데 해결에는 2가지 방법이 있다. if 조건 추가 if (i = M || j >= N) continue; 그래프 배열 상하좌우에 1칸씩 여유공간을 만들어준다...

Algorithm/BOJ 2023.02.09