백준 2644. 촌수계산

2023. 8. 29. 16:21·백준

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

 

2644번: 촌수계산

사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어

www.acmicpc.net

def bfs(start):  # 시작노드만 받는다!
    global visited
    q=[]
    q.append(start)
    visited[start] = 1
    while q:
        t = q.pop(0)  # 시작할 정점 뽑아오기
        for w in arr[t]:  # t와 인접한 노드들(w들) 중
            if visited[w] == 0:   # w를 방문하지 않았다면?
                q.append(w)   # 큐에 w를 죄다 집어넣기
                visited[w] = visited[t] + 1  # 멀수록 촌수가 점점 늘어나게 누적합처리

n = int(input())
person1, person2 = map(int, input().split())
m = int(input())
arr = [[] for _ in range(n+1)]  # 2차원 빈 리스트
visited = [0] * (n + 1)  # 1차원 0 리스트
for _ in range(m):
    p1, p2 = map(int, input().split())
    arr[p1].append(p2)  # 인접 리스트 생성
    arr[p2].append(p1)
bfs(person1)
if visited[person2] != 0:
    print(visited[person2]-1)
else:
    print(-1)

인접리스트로 할거면 2차원 빈 리스트를 만들어야됨!

저작자표시 (새창열림)

'백준' 카테고리의 다른 글

백준 1697. 숨바꼭질  (0) 2023.09.01
백준 7569. 토마토  (0) 2023.08.31
백준 2667. 단지번호붙이기  (0) 2023.08.29
백준 2606번. 바이러스  (0) 2023.08.29
백준 2839. 설탕배달  (0) 2023.08.29
'백준' 카테고리의 다른 글
  • 백준 1697. 숨바꼭질
  • 백준 7569. 토마토
  • 백준 2667. 단지번호붙이기
  • 백준 2606번. 바이러스
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (382)
      • React (16)
      • Next.js (5)
      • Javascript (5)
      • Typescript (4)
      • Node.js (2)
      • Cs (16)
      • 트러블 슈팅 (5)
      • Html (1)
      • Css (3)
      • Django (0)
      • vue (0)
      • Java (2)
      • Python (0)
      • 독서 (1)
      • 기타 (3)
      • 백준 (192)
      • swea (31)
      • 프로그래머스 (30)
      • 이코테 (4)
      • 99클럽 코테 스터디 (30)
      • ssafy (31)
      • IT기사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 태그

    개발자취업
    항해99
    99클럽
    코딩테스트준비
    Til
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
백준 2644. 촌수계산
상단으로

티스토리툴바