문제출처 : 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

+ Recent posts