Algorithm 48

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 13549] 숨바꼭질 3 C++

난이도: Gold 5 번호: 13549 생성일: March 12, 2023 9:33 PM 알고리즘 분류: 0-1 너비 우선 탐색, 그래프 이론, 그래프 탐색, 너비 우선 탐색, 데이크스트라 언어: C++ 13549번: 숨바꼭질 3 C++ #include #include using namespace std; int N, K; int visit[100001]; int BFS() { deque dq; dq.push_back(N); visit[N] = 1; while (!dq.empty()) { int cur = dq.front(); dq.pop_front(); if (cur == K) return visit[cur] - 1; if (cur * 2 < 100001 && !visit[cur * 2]) { dq.p..

Algorithm/BOJ 2023.03.12

C

[BOJ 14940] 쉬운 최단거리 C++

난이도: Silver 1 번호: 14940 생성일: March 10, 2023 5:48 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 너비 우선 탐색 언어: C++ 14940번: 쉬운 최단거리 C++ #include #include #include using namespace std; int N, M; struct Pos { int x, y; }; vector map; vector visit; vector distMap; const int dX[] = {0, 0, -1, 1}; const int dY[] = {-1, 1, 0, 0}; void BFS(Pos dest) { queue Q; distMap[dest.x][dest.y] = 0; Q.push(dest); visit[dest.x][dest.y]..

Algorithm/BOJ 2023.03.10

C

[BOJ 18232] 텔레포트 정거장 C++

난이도: Silver 2 번호: 18232 생성일: March 10, 2023 1:33 AM 알고리즘 분류: 그래프 이론, 그래프 탐색, 너비 우선 탐색 언어: C++ 18232번: 텔레포트 정거장 C++ #include #include #include using namespace std; int N, M, S, E; vector map; vector visit; int BFS() { queue Q; Q.push(S); visit[S] = true; int depth = 0; while (!Q.empty()) { int size = Q.size() + 1; while (--size) { int cur = Q.front(); Q.pop(); if (cur == E) return depth; for (int..

Algorithm/BOJ 2023.03.10

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 17198] Bucket Brigade C++

난이도: Silver 4 번호: 17198 생성일: March 7, 2023 10:36 AM 알고리즘 분류: 그래프 이론, 그래프 탐색, 너비 우선 탐색, 많은 조건 분기 언어: C++ 17198번: Bucket Brigade C++ #include #include using namespace std; // B와 L의 위치를 저장하는 pair 변수 pair B, L; // 미로의 상태를 저장하는 char 배열 char map[11][11]; // 방문 여부를 저장하는 bool 배열 bool visit[11][11]; // 상하좌우 이동을 위한 배열 const int dX[] = {0, 0, -1, 1}; const int dY[] = {-1, 1, 0, 0}; // BFS 함수 int BFS() { //..

Algorithm/BOJ 2023.03.07

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 24447] 알고리즘 수업 - 너비 우선 탐색 4 C++

난이도: Silver 2 번호: 24447 생성일: March 4, 2023 3:00 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 너비 우선 탐색 언어: C++ 24447번: 알고리즘 수업 - 너비 우선 탐색 4 C++ #include #include #include #include using namespace std; int N, M, R, sq = 1; // N: 정점의 수, M: 간선의 수, R: 시작 정점 vector path[100001]; // 인접 리스트 vector depth; // 노드의 깊이 vector seq; // 노드의 방문 순서 void BFS(int R) { queue Q; Q.push(R); // 시작 정점을 큐에 삽입 depth[R] = 0; // 시작 정점의 깊이는 ..

Algorithm/BOJ 2023.03.04