[백준] 1389번, 케빈 베이컨의 6단계 법칙 (Python)

2021. 8. 7. 16:15·알고리즘/백준
728x90
반응형

문제

https://www.acmicpc.net/problem/1389

 

1389번: 케빈 베이컨의 6단계 법칙

첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻

www.acmicpc.net

 

코드

import collections
import sys

INF = sys.maxsize
n, m = map(int, input().split())
graph = [[] for _ in range(n+1)]

for i in range(m):
    a, b = map(int, input().split())
    graph[a].append(b)
    graph[b].append(a)

queue = collections.deque()

def bfs(index):
    queue.append(index)
    while queue:
        cur = queue.popleft()
        visited[cur] = True
        for next in graph[cur]:
            if visited[next] == False:
                visited[next] = True
                distance[next] = distance[cur] + 1
                queue.append(next)

result = [INF]
for i in range(1,n+1):
    distance = [0 for _ in range(n+1)]
    visited = [False for _ in range(n+1)]   
    bfs(i)
    result.append(sum(distance))

print(result.index(min(result)))

정점마다 bfs를 돌아서 다른 정점까지에 거리에 합이 가장 작은 수를 구하는 문제이다.

 

result에 distance를 구한다음 합을 넣어준뒤에 가장 작은 인덱스 값을 구하면된다.

 

result index에 쉽게 접근하기 위해서 0인덱스에는 maxsize만큼 값을 넣어놓는다.

반응형
저작자표시 (새창열림)

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 3055번, 탈출 (Python)  (0) 2021.08.12
[백준] 10451번, 순열 사이클 (Python)  (0) 2021.08.08
[백준] 2193번, 이친수 (Python)  (0) 2021.08.03
[백준] 1912번, 연속합 (Python)  (0) 2021.07.30
[백준] 10815번, 숫자 카드 (Python)  (0) 2021.07.27
'알고리즘/백준' 카테고리의 다른 글
  • [백준] 3055번, 탈출 (Python)
  • [백준] 10451번, 순열 사이클 (Python)
  • [백준] 2193번, 이친수 (Python)
  • [백준] 1912번, 연속합 (Python)
wookcode
wookcode
공부한 내용들을 정리하고 기록하는 블로그입니다.
    반응형
  • wookcode
    wookcode
    wookcode
  • 전체
    오늘
    어제
    • 카테고리 (196)
      • study (1)
        • 아파치 카프카 애플리케이션 프로그래밍 with 자.. (0)
        • 인프런 (1)
      • Live Study (15)
      • Programming (14)
        • Java (8)
        • Python (1)
        • Springboot (5)
        • MSA (0)
      • 알고리즘 (117)
        • 백준 (58)
        • 프로그래머스 (59)
      • 에러로그 (5)
      • 항해99 (23)
      • 면접 (1)
      • 프로젝트 (1)
      • CS (19)
        • 네트워크 (2)
        • 운영체제 (2)
        • 데이터베이스 (2)
        • 컴퓨터구조 (1)
        • Java (8)
        • Spring (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    조합
    카카오인턴
    실전프로젝트
    프로그래머스
    인프런
    해결
    정리
    후기
    김영한
    버그
    괄호
    SFlash
    스파르타코딩클럽
    백준
    항해99
    카카오코딩테스트
    spring
    미니프로젝트
    orm
    회고
    SpringBoot
    jpa
    항해마켓
    코딩테스트
    java
    그리디
    브루트포스
    파이썬
    에러
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
wookcode
[백준] 1389번, 케빈 베이컨의 6단계 법칙 (Python)
상단으로

티스토리툴바