[Algorithm] D-15 특정 거리의 시 찾기, 연구소

Jifrozen·2021년 7월 14일
1

Algorithm

목록 보기
21/70

특정거리 도시 찾기

# https://www.acmicpc.net/problem/18352
from collections import deque

n, m, k, x = map(int, input().split())
data = [[] * n for _ in range(n)]
visited = [-1] * n
for i in range(m):
    a, b = map(int, input().split())
    data[a - 1].append(b - 1)

# 처음 시작 지점부터 넣어줌
queue = deque([x - 1])
# 처음 시작 지점 0
visited[x - 1] = 0

while queue:
    a = queue.popleft()
    # data값 다 불러옴
    for i in data[a]:
        # 방문 안했으면
        if visited[i] == -1:
            # 이전 값 넣어서 +1 -> 최소 거리 구할때 무조건 이렇게 한다.
            visited[i] = visited[a] + 1
            queue.append(i)

#최단 거리인 도시 존재하지 않을때 -1 표시하기 위해서
check = False
# 모든 방문 기록
for i in range(n):
    # 원하는 거리 정보이면
    if visited[i] == k:
        # 도시 표시
        print(i + 1)
        check = True

if check == False:
    print(-1)

연구소

일단...하...너무 어렵다..

2개의 댓글

comment-user-thumbnail
2021년 7월 15일

안녕하세요, 김덕우입니다! 저도 이번 파트 너무 어렵더라고요.. 아직 3일이나 남았으니까 힘내서 풀어봐요!!!! 오늘도 화이팅입니다~!!

답글 달기
comment-user-thumbnail
2021년 7월 15일

저도 연구소 보자마자 일단.. 하.. 어렵다 라는 생각을 했어요 ㅋㅋㅋㅋ 정말 어렵네요,, 남은 날들도 화이팅해요,,,!!!

답글 달기