개발자 톡

연습문제 톡 [HSAT 6회 정기 코딩 인증평가 기출] 출퇴근길

[HSAT 6차] 출퇴근길

등록일
2023-05-12 15:46:03
조회수
625
작성자
lyuhit

import sys
sys.setrecursionlimit = (10**6)

answer = 0
n, m = map( int, input().split() )
adj = [ [] for _ in range(n+1) ]
adjR = [ [] for _ in range(n+1) ]

for i in range (m):
    start, end = map( int, input().split())
    adj[start].append(end)
    adjR[end].append(start)
x, y = map (int, input().split())

# 어떤 노드로부터 연결된 점을 따라 방문 가능한 노드를 찾는 함수
def dfs (now, adj, visited):
    if visited[now] == 1:
        return
    visited[now] = 1
    for neighbor in adj[now]:
        dfs(neighbor, adj, visited)
    return

startXvisited = [0]*(n+1)
startXvisited[y] = 1
dfs(x, adj, startXvisited)

startYvisited = [0]*(n+1)
startYvisited[x] = 1
dfs(y, adj, startYvisited)

endXvisited = [0]*(n+1)
dfs(x, adj, startXvisited)

endYvisited = [0]*(n+1)
dfs(y, adj, startYvisited)

for i in range (1, n+1):
    if startXvisited[i] and startYvisited[i] and endXvisited and endYvisited:
        answer += 1

print (answer-2)


Subtask_2 Subtask 의 31-40 번 테케에서 계속 런타임 에러나는데 이유 아시는분..

공식 유튜브 해설강의를 보고 풀어도 똑같네요.

#[hsat_6회_정기_코딩_인증평가_기출]_출퇴근길
#[hsat_6차]_출퇴근길

이 카테고리의 톡 더보기