본문 바로가기
728x90

ALGORITHM/C++ - 백준28

[백준 10026] 적록색약 문제 링크 https://www.acmicpc.net/problem/10026 문제 분석 R, G, B 총 3가지의 색상이 있고, 각각 구역이 나눠져 있다. 나눠진 구역이 총 몇개인지 세는 문제이다. 여기서 적록색약이 아닌 사람이 봤을땐 R, G, B 모두 나누어져 있지만, 적록색약인 사람이 본다면 R과 G는 하나의 구역으로 생각 하면 된다. 알고리즘 설계 이중 vector을 사용하여 판을 구성하고, 입력 받는다. 적록색약이 아닌 사람과 적록색약인 사람이 보는 함수를 따로 만들어준다. 이후 BFS을 사용하여 탐색해준다. 코드 #include #include #include using namespace std; int loop, first = 0, second = 0; vector map; int addX.. 2023. 10. 18.
[백준 24479] 알고리즘 수업 - 깊이 우선 탐색 1 https://www.acmicpc.net/problem/24479 문제 분석 입력 받아 그래프를 만들고 DFS로 탐색을 하고, 탐색 순서를 기록하여 출력하는 형식에 문제이다. 이 문제는 DFS만 알고 있다면 딱히 문제 없이 풀 수 있을 것이라고 생각된다. 코드 #include #include #include using namespace std; vector graph; vector visited; int result[100001]; int cnt = 0; void DFS(int index); int main() { int n, m, r, input1, input2; cin >> n >> m >> r; graph.resize(n + 1); visited.resize(n + 1, false); while .. 2023. 8. 1.
[백준 1260] DFS와 BFS https://www.acmicpc.net/problem/1260 문제 분석 입력을 받아 그래프를 만들고, DFS로 탐색 하였을때와 BFS로 탐색하였을때 각각 출력해주는 형태의 문제이다. 이 문제는 DFS와 BFS를 이해하고 있다면 문제 없을거라고 생각한다. 코드 #include #include #include using namespace std; void DFS(int index); void BFS(int index); vector graph; vector visited; int n, m, v; int main() { int input1, input2; cin >> n >> m >> v; graph.resize(n + 1); visited = vector(n + 1, false); while (m--).. 2023. 8. 1.
[백준 11724] 연결 요소의 개수 https://www.acmicpc.net/problem/11724 문제 분석 간단한 DFS활용 문제이다. 입력을 받아 그래프를 만들고, 그래프를 이루고 있는 덩어리가 몇개인지 세는 형태의 문제이다. DFS를 이해했다면 무리 없이 풀 수 있는 문제라고 생각한다. 코드 #include #include using namespace std; static vector A; static vector visited; void DFS(int v); int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int N, M; cin >> N >> M; A.resize(N+1); visited = vector(N+1, false).. 2023. 8. 1.
728x90