문제출처 : https://www.acmicpc.net/problem/1389
1. 문제요약
- 케빈 베이컨 6단계 법칙 : 임의의 두 사람이 최소 몇 단계 만에 이어지는가
- 한 사람이 다른 모든 사람과 케빈 베이컨의 합이 최소인 사람을 출력
- 같은 사람이 있다면 번호가 작은 사람을 출력
2. 접근방법
- 한 사람이 다른사람까지 도달하는데 최소 단계
- 한 사람이 다른사람과의 케빈 베이컨을 하고
n 명의 사람 전부다 해봄
3. 시간복잡도
- 최소 경로 찾기
플로이드 => N^3
bfs => VE
4. 회고
- 플로이드는 거리 초기값이 중요함
최소 단계 합을 찾는 과정이 필요함
- bfs는 방문여부를 알아야 하므로 배열이 하나 더 필요함
좀 더 깔끔하게 만들 수 있을거 같은데...
- dfs는 깊이 우선 탐색이므로 최단 거리가 나오면 갱신해줘야 함
소스코드 : 플로이드
소스코드 : bfs
[출처 : BOJ, 문제에 대한 모든 권리는 BOJ(acmicpc.net, startlink)에 있음]
'먹고살려면 > boj' 카테고리의 다른 글
BOJ 1463 1로 만들기 (0) | 2018.01.12 |
---|---|
BOJ 2573 빙산 (1) | 2018.01.05 |
BOJ 9205 맥주 마시면서 걸어가기 (0) | 2018.01.03 |
BOJ 1325 효율적인 해킹 (0) | 2017.12.27 |
BOJ 2667 단지번호붙이기 (0) | 2017.12.27 |