본문 바로가기

728x90
SMALL

BAEKJOON/그래프

(68)
백준 2638번 [치즈](C++)-yes6686- 티스토리 백준 문제 풀이: 2638 [치즈]문제 링크: https://www.acmicpc.net/problem/2638문제 설명:n×m 크기의 판에 치즈가 놓여 있습니다. 공기와 접촉한 치즈는 한 시간이 지나면 녹습니다. 치즈는 2변 이상이 공기와 접촉하면 녹게 됩니다. 모든 치즈가 녹을 때까지 걸리는 시간을 출력합니다.입력:첫째 줄에 판의 크기 n (1 ≤ n ≤ 100)과 m (1 ≤ m ≤ 100)이 주어집니다.다음 n개의 줄에 치즈 상태를 나타내는 0과 1이 주어집니다. 1은 치즈가 있는 칸, 0은 공기가 있는 칸을 나타냅니다.출력:모든 치즈가 녹을 때까지 걸리는 시간을 출력합니다.문제 해결 코드#include #include #include using namespace std;int n, m;int b..
백준 2206번 [벽 부수고 이동하기](C++) -yes6686- 티스토리 백준 문제 풀이: 2206 [벽 부수고 이동하기]문제 링크: https://www.acmicpc.net/problem/2206문제 설명:n×m 크기의 행렬에서 (1,1)에서 (n,m)으로 이동하는 최단 경로를 찾는 문제입니다. 이동 중 벽(1)을 최대 한 번 부술 수 있으며, 벽이 없는 칸은 0으로 표시됩니다. 최단 경로의 길이를 출력하고, 이동이 불가능하면 -1을 출력합니다.입력:첫째 줄에 행렬의 크기 n, m이 주어집니다. (1 ≤ n, m ≤ 1,000)둘째 줄부터 n개의 줄에 0과 1로 이루어진 행렬이 주어집니다.출력:최단 경로의 길이를 출력합니다. 이동이 불가능하면 -1을 출력합니다.문제 해결 코드#include #include #include using namespace std;int n, m..
백준 1991번 [트리 순회](C++) -yes6686- 티스토리 백준 문제 풀이: 1991 [트리 순회]문제 링크: https://www.acmicpc.net/problem/1991문제 설명:이진 트리에서 다음 세 가지 순회 방법을 구현하는 문제입니다.전위 순회 (Preorder Traversal): 루트 → 왼쪽 자식 → 오른쪽 자식중위 순회 (Inorder Traversal): 왼쪽 자식 → 루트 → 오른쪽 자식후위 순회 (Postorder Traversal): 왼쪽 자식 → 오른쪽 자식 → 루트주어진 트리의 구조를 기반으로 각 순회 방법에 따른 결과를 출력합니다.입력:첫 번째 줄에 노드의 개수 n이 주어집니다. (1 ≤ n ≤ 26)다음 n개의 줄에는 각각 루트 노드, 왼쪽 자식 노드, 오른쪽 자식 노드가 주어집니다. 자식이 없는 경우 '.'으로 표시됩니다.출력..
백준 1987번 [알파벳](C++) -yes6686- 티스토리 백준 문제 풀이: 1987 [알파벳]문제 링크: https://www.acmicpc.net/problem/1987문제 설명:R×C 크기의 보드에서 말이 이동하며, 지나간 칸에 적힌 알파벳을 기억합니다. 말은 상하좌우로 이동할 수 있으며, 한 번 지나간 알파벳이 적힌 칸은 다시 지나갈 수 없습니다. 말이 최대로 이동할 수 있는 칸 수를 출력하는 프로그램을 작성하세요.입력:첫 번째 줄에 보드의 크기 R, C가 주어집니다. (1 ≤ R, C ≤ 20)다음 R개의 줄에는 각 칸에 적힌 알파벳이 주어집니다. 알파벳은 대문자 영어 알파벳(A-Z)입니다.출력:말이 최대로 이동할 수 있는 칸 수를 출력합니다.문제 해결 코드#include #include #include using namespace std;int dx[..
백준 1967번 [트리의 지름](C++) -yes6686- 티스토리 백준 문제 풀이: 1967 [트리의 지름]문제 링크: https://www.acmicpc.net/problem/1967문제 설명:트리에서 두 노드 사이의 경로 중 가장 긴 경로를 구하는 문제입니다. 이 경로를 트리의 지름이라고 합니다.입력:첫째 줄에 노드의 개수 n이 주어집니다. (1 ≤ n ≤ 10,000)다음 n-1개의 줄에는 트리의 간선 정보 a, b, c가 주어집니다. 이는 노드 a와 b가 가중치 c로 연결되어 있음을 나타냅니다.출력:트리의 지름을 출력합니다.문제 해결 코드#include #include #include using namespace std;vector> tree[10001]; // 트리의 인접 리스트 (노드, 가중치)bool visited[10001]; // 방문 여부int max..
백준 1916번 [최소비용 구하기](C++) -yes6686- 티스토리 백준 문제 풀이: 1916 [최소비용 구하기]문제 링크: https://www.acmicpc.net/problem/1916문제 설명:n개의 도시가 주어졌을 때, 출발 도시에서 도착 도시로 가는 최소 비용을 구하는 문제입니다. 각 도시는 버스로 연결되어 있으며, 비용이 다릅니다.입력:첫 번째 줄에 도시의 개수 n (1 ≤ n ≤ 1,000)와 버스의 개수 m (1 ≤ m ≤ 100,000)가 주어집니다.다음 m개의 줄에는 버스의 출발 도시 a, 도착 도시 b, 비용 c가 주어집니다. (1 ≤ c ≤ 100,000)마지막 줄에는 출발 도시 start와 도착 도시 last가 주어집니다.출력:출발 도시에서 도착 도시로 가는 데 드는 최소 비용을 출력합니다.예제:입력:5 81 2 21 3 31 4 11 5 102..
백준 1865번 [웜홀](C++) -yes6686- 티스토리 백준 문제 풀이: 1865 [웜홀]문제 링크: https://www.acmicpc.net/problem/1865문제 설명:여러 개의 마을과 마을을 잇는 도로 및 웜홀이 있을 때, 웜홀을 이용해 시간이 음수인 사이클을 형성할 수 있는지를 판별하는 문제입니다.입력:첫 번째 줄에 테스트 케이스의 개수 T가 주어집니다. (1 ≤ T ≤ 5)각 테스트 케이스의 첫 줄에는 마을의 수 n, 도로의 수 m, 웜홀의 수 w가 주어집니다. (1 ≤ n ≤ 500, 1 ≤ m ≤ 2,500, 1 ≤ w ≤ 200)다음 m개의 줄에는 두 마을을 잇는 도로 정보 s e t가 주어지며, 이는 s에서 e로 가는 시간이 t임을 나타냅니다.다음 w개의 줄에는 웜홀 정보 s e t가 주어지며, 이는 s에서 e로 가는 시간이 -t임을 나..
백준 1753번 [최단경로](C++) -yes6686- 티스토리 백준 문제 풀이: 1753 [최단경로]문제 링크: https://www.acmicpc.net/problem/1753문제 설명:방향 그래프가 주어졌을 때, 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 문제입니다. 만약 특정 정점으로 가는 경로가 없다면 "INF"를 출력합니다.입력:첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어집니다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000)둘째 줄에 시작 정점의 번호 K가 주어집니다. (1 ≤ K ≤ V)셋째 줄부터 E개의 줄에 간선 정보 u v w가 주어집니다. (1 ≤ u, v ≤ V, 0 ≤ w ≤ 10)출력:첫째 줄부터 V개의 줄에 각 정점으로 가는 최단 경로의 값을 출력합니다. 경로가 존재하지 않으면 "INF"를 출력합니다.예시:입력..

728x90
LIST