일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Planned
- programmers
- 프로그래머스
- 마라마라빔
- BFS
- 함밥
- django
- minimum spanning tree
- 코드트리
- Kruskal
- 실습
- 파이썬
- 최소스패닝트리
- MyPlaylist
- B대면노래방
- DP
- DFS
- 장고
- 백트래킹
- 백준
- SQL
- 소프트웨어공학
- 종합설계
- 데이터베이스
- Bellman-Ford
- 그리디알고리즘
- 모각코
- codetree
- 알고리즘
- 동적계획법
- Today
- Total
목록벨만 포드 (4)
Leta Learns
문제 https://www.acmicpc.net/problem/1865 1865번: 웜홀 첫 번째 줄에는 테스트케이스의 개수 TC(1 ≤ TC ≤ 5)가 주어진다. 그리고 두 번째 줄부터 TC개의 테스트케이스가 차례로 주어지는데 각 테스트케이스의 첫 번째 줄에는 지점의 수 N(1 ≤ N ≤ 500), www.acmicpc.net 타임머신 문제와 비슷한 유형이다. 다른 점이라면 bf 함수에서 세번째 for문 안에 있는 if문을 돌릴 때, 타임머신에서는 아래의 if문을 사용하여 시작점과 연결된 경로가 있는지 확인해야 했고, if dist[a] != float('inf') and dist[next] > dist[a] + time: 웜홀 문제에서는 시작점이 주어지지 않으므로 이에 대한 확인 없이 negative..
문제 https://www.acmicpc.net/problem/11657 11657번: 타임머신 첫째 줄에 도시의 개수 N (1 ≤ N ≤ 500), 버스 노선의 개수 M (1 ≤ M ≤ 6,000)이 주어진다. 둘째 줄부터 M개의 줄에는 버스 노선의 정보 A, B, C (1 ≤ A, B ≤ N, -10,000 ≤ C ≤ 10,000)가 주어진다. www.acmicpc.net 벨만포드 코드에 문제가 있는데 모르겠어서 친구랑 스터디할 때 상의했다. for문을 세 번 돌려야 하는데 난 두 번만 돌려서 문제가 생겼다. for i in range(1, n+1) : 간선 탐색을 위한 for문 (아래 for문을 n번 반복) for a in range(1, n+1) : 노드 탐색을 위한 for문 (모든 엣지에 대해서..
ㅎ............ 벨만포드....... 모르겠어요......... 오늘 낮에 벨만포드 다른 문제 풀다가 안 풀려서 넘기고 이거 푼 건데 그 문제를 못 풀어서 그런가 이것도 못 풀겠다. 내 벨만포드 코드에 문제가 있나보다.. 뭐가 문제일까... 근데 이 문제는 테스트 케이스 여러 개 받아와야 해서 for문 안에서 모든 것을 처리해야 하는데 그걸 이해하는데 오래 걸렸다. 문제가 너무 길어서 읽기 싫게 생겼거든요.. 내일 다시 풀거나 다음 모각코 때 다시 풀어야지.... ㅠ import sys input = sys.stdin.readline def bf(start): dist[start] = 0 for i in range(1, n+1): for next, time in road[i]: if dist[i..
Bellman-Ford Algorithm : 한 노드에서 다른 노드까지의 최단 거리를 구하는 알고리즘 가중치가 음수일 때도 사용 가능 다익스트라 알고리즘에 비해 느리므로 가중치가 모두 양수인 경우 굳이 벨만포드 사용할 필요 x. 다익스트라 쓰면 됨. Bellman-Ford 알고리즘의 특징 음수 가중치가 있는 그래프의 시작 정점에서 다른 정점까지의 최단 거리를 구할 수 있다. 음수 사이클 존재 여부를 알 수 있다. => 그래프 정점 개수를 v라고 할 때 인접 간선을 검사하고 거리 값을 갱신 (갱신 과정은 v-1번으로 제한) => 그래프의 시작 정점에서 특정 정점까지 도달하기 위해 거치는 최대 간선 수: v-1개 => v번째 간선이 추가되면 사이클이라고 판단 Bellman-Ford 과정 1. 시작 정점 결정..