[BFS] 백준 #18352 특정 거리의 도시 찾기 - Python

2024. 5. 11. 01:29· Algorithm/Baekjoon
목차
  1. 🗂️ 문제
  2. 💡 접근법
  3. 😎 내 코드
  4. 🧐 배운 점
  5. ✅ 정답 확인

🗂️ 문제

링크: https://www.acmicpc.net/problem/18352

 

💡 접근법

인접 리스트를 통해 그래프를 구현하고, BFS를 사용하여 각각의 도시까지의 최단 거리를 distance 리스트에 저장한다. 현재 노드의 거리 값은 이전 노드의 거리 값 + 1이다.

이후 K와 거리가 같은 도시를 출력하면 된다.

 

😎 내 코드

import sys
from collections import deque

def BFS(v):
    queue = deque()
    queue.append(v)
    visited[v] = True
    while queue:
        now_node = queue.popleft()
        for i in graph[now_node]:
            if not visited[i]:
                visited[i] = True
                queue.append(i)
                distance[i] = distance[now_node] + 1

N, M, K, X = map(int, sys.stdin.readline().split())

graph = [[] for _ in range(N+1)]  # 인접 리스트
visited = [False] * (N+1)  # 방문 리스트
distance = [0] * (N+1)  # 노드 별 최단 거리 리스트

for _ in range(M):
    a, b = map(int, sys.stdin.readline().split())
    graph[a].append(b)

BFS(X)

if K in distance:
    for i, d in enumerate(distance):
        if d == K:
            print(i)
else:
    print(-1)

 

🧐 배운 점

  • BFS는 시작 노드와 가까운 노드를 우선적으로 탐색하므로 최단 거리를 구하는 것에 적합하다.

 

✅ 정답 확인

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

[BFS] 백준 #1325 효율적인 해킹 - Python  (0) 2024.05.14
[그래프] 백준 #1753 최단경로 - Python  (0) 2024.05.11
[이분탐색] 백준 #10815 숫자 카드 - Python  (0) 2024.05.07
[DP] 백준 #11726 2xn 타일링 - Python  (0) 2024.05.05
[이분탐색] 백준 #1654 랜선 자르기 - Python  (1) 2024.05.03
  1. 🗂️ 문제
  2. 💡 접근법
  3. 😎 내 코드
  4. 🧐 배운 점
  5. ✅ 정답 확인
'Algorithm/Baekjoon' 카테고리의 다른 글
  • [BFS] 백준 #1325 효율적인 해킹 - Python
  • [그래프] 백준 #1753 최단경로 - Python
  • [이분탐색] 백준 #10815 숫자 카드 - Python
  • [DP] 백준 #11726 2xn 타일링 - Python
jyjyjy25
jyjyjy25
jyjyjy25
기록하는 습관
jyjyjy25
전체
오늘
어제
  • 분류 전체보기 (148)
    • Algorithm (87)
      • Baekjoon (59)
      • Programmers (28)
    • Courses (18)
      • Java (3)
      • Spring (11)
      • JPA (4)
    • CS (7)
    • DevOps (8)
      • AWS (8)
    • Framework (10)
      • Spring (5)
      • JPA (5)
    • Security (13)
      • Web Hacking (10)
      • Dreamhack (0)
      • ISMS (3)
    • Research (1)
    • Etc (4)

인기 글

최근 글

hELLO · Designed By 정상우.v4.2.1
jyjyjy25
[BFS] 백준 #18352 특정 거리의 도시 찾기 - Python
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.