본문 바로가기

BFS21

[백준][bfs] 7569 토마토 c++ 구현 목차 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 문제 문제 구현 방향 bfs를 이용한 전형적인 문제로 이중 배열를 활용하여 풀었다. 문제 풀이 시 주의점 문제에서 퍼지는 방향을 잘 생각해서 갈 수 있는 범위를 지정해 주어야 한다. 종료 조건을 잘 설정해 주어야 날짜를 올바르게 구할 수 있다. 문제 풀이 예시 입력) 5 3 3 -갈 수 있는 범위의 제한: 앞 뒤를 제외한 방향- 층의 종류: 0층, 1층, 2층 y좌표 .. 2024. 2. 21.
[백준][bfs] 트리의 부모 찾기 11725 c++구현 목차 https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 제목 문제 구현 방향 이진 트리가 아니기 때문에 인접리스트를 만들어 bfs탐색을 통해 해결해 보았다. 코드 구현 #include #include #include using namespace std; vectortree[100000]; vectorvisit(100000, false); vectorparent(100000, 0); //부모를 저장할 배열 void bfs(int start) { queue q; q.push(start); visit[start] .. 2024. 2. 19.
[백준][bfs] 1068 트리 c++ 구현 목차  https://www.acmicpc.net/problem/1068 1068번: 트리첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다www.acmicpc.net문제  문제 구현 방향이진 트리가 아니기 때문에 인접리스트를 통해서 문제를 접근하였다.삭제는 bfs를 통해 탐색하여 삭제 노드를 표시하는 방법으로 접근했다.    문제 풀이예시 입력)91 6 4 1 3 3 8 8 -13 0    103  2    345  42   5    61   7    867  (단방향 인접 리스트)       그래프와 인접리스트로 표현한 모습이다.   0    103.. 2024. 2. 19.
[백준] 1303 전쟁-전투 c++ 구현 목차 https://www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net 문제 문제 구현 방향 및 설명 이 문제는 연결리스트가 아닌 인접 행렬로 푸는 것이 더 유리하다. 출발 지점을 (0,0) 부터 (4,4) 까지 놓고 bfs를 실행하면 다음과 같이 방문한다. -> 방문했던 곳은 탐색을 시작하지 않기 때문이다. 1 2 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 코드 구현 #include #includ.. 2024. 2. 6.
728x90