플로이드 워셜

Study/코딩 테스트

2021.2.26 [백준] 경로 찾기

플로이드 워셜 알고리즘 Q www.acmicpc.net/problem/11403 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net A 입력받는 것이 고민이였다. 입력이 여러 개로 들어오고, 케이스마다 달라질 수 있기 때문에 다른 리스트로 입력받았더니 내가 그걸 해결하지 못했다. 그냥 graph.append로 그래프에 넣어주는게 제일 쉽다. 코드 INF = int(1e9) n = int(input()) graph = [] for _ in range(n): graph.append(list(map(int, input().split()))) #입력을 그래프에 넣..

Study/코딩 테스트

2021.2.26 [백준] 명제 증명

플로이드 워셜 알고리즘 Q www.acmicpc.net/problem/2224 2224번: 명제 증명 첫째 줄에 출력할 명제의 개수 X개를 출력한다. 다음 X개의 줄에 증명될 수 있는 명제를 한 줄에 하나씩 출력한다. 명제를 출력할 때에는 전건 순으로 정렬하고, 전건이 같은 경우에는 후건 순으 www.acmicpc.net A 플로이드 워셜로 푸는데 상당히 고민했다. P => P 같은 경우는 출력하지 않기로 한다는 조건을 빼먹어서 애먹었고, 출력할 명제 갯수 세는데도 고생했었다. 코드 import sys INF = int(1e9) n = int(sys.stdin.readline().rstrip()) graph = [[INF] * (123) for _ in range(123)] #ord('a')=97, or..

Study/코딩 테스트

2021.2.26 [백준] 플로이드

플로이드 워셜 알고리즘 Q www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net A 최단경로 문제여서 플로이드 워셜을 사용하여 풀었다. 주의할 점은 시작도시에서 도착도시로 가는 버스가 하나 이상 있을 수 있다는 점을 고려해서 문제를 푸는 것이였다. 참고로 input을 써서 풀었을 때 4860 ms 였지만, sys를 이용해서 풀었을 때 908 ms 였다. 귀찮더라도 sys 이용하자 코드 import sys INF = int(1e9) n = int(sys.stdin...

NOredstone
'플로이드 워셜' 태그의 글 목록