@Eeap
velog
@Eeap
전체 방문자
오늘
어제
  • 전체 (168)
    • osam (1)
    • Cloud (21)
      • Docker (2)
      • AWS (13)
    • AI & Data (7)
    • Algorithm (76)
      • Baekjoon (75)
      • Codeforces (1)
    • Language (18)
      • Java (18)
    • Back-end (17)
      • Spring (3)
      • JSP & Servlet (12)
      • Go (2)
    • 일상 (4)
    • 기타 (8)
    • git (1)
    • Infra (9)
      • Apache Kafka (5)
      • Kubernetes (4)
      • 기타 (0)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • bedrock
  • knowledge bases
  • 심폴릭링크
  • 티스토리챌린지
  • java
  • Python
  • invokemodel api
  • 오블완
  • bedrock agent
  • AWS CodeArtifact
  • sagemaker unified studio
  • Agent
  • AWS CodeStar
  • AWS CodeCatalyst
  • CLASS
  • converse api
  • bedrock api
  • SageMaker
  • 인터페이스
  • flink

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
@Eeap

velog

Algorithm/Baekjoon

2644번 파이썬

2022. 3. 20. 15:39
반응형

bfs를 deque로 이용해서 문제를 풀음.

처음에 dfs 문제인줄 알고 dfs로 풀었지만 촌수 관계가 없을 때 -1을 출력하도록 하는 예외처리가 힘들어서

bfs를 이용해서 지난간 것은 전 노드에 +1씩 추가하여 목적지 b에는 몇촌 관계인지 표현할 수있도록 하였음. 방문여부는 그 해당 노드의 값이 0인지 아닌지 판별해서 구분!! 

import sys
input=sys.stdin.readline
from collections import deque
n = int(input())
a,b = map(int,input().split())
m = int(input())
graph={}
for _ in range(m):
  x,y=map(int,input().split())
  if x not in graph:
    graph[x]=[y]
  elif y not in graph:
    graph[x].append(y)
  if y not in graph:
    graph[y]=[x]
  elif x not in graph:
    graph[y].append(x)
queue=deque([a])
count = [0]*(n+1)
while queue:
  item = queue.popleft()
  for i in graph[item]:
    if count[i]==0:
      count[i]+=(count[item]+1)
      queue.append(i)
  
if count[b]==0:
  print(-1)
else:
  print(count[b])
반응형
저작자표시 (새창열림)

'Algorithm > Baekjoon' 카테고리의 다른 글

1697번 파이썬  (0) 2022.03.20
7569번 파이썬  (0) 2022.03.20
10844번 파이썬  (0) 2022.03.17
2667번 파이썬  (0) 2022.03.17
2606번 파이썬  (0) 2022.03.16
    'Algorithm/Baekjoon' 카테고리의 다른 글
    • 1697번 파이썬
    • 7569번 파이썬
    • 10844번 파이썬
    • 2667번 파이썬
    @Eeap
    @Eeap

    티스토리툴바