ProblemSolving/BFS, DFS, 백트래킹

SWEA 2814 최장경로 파이썬

OSNIM 2022. 4. 30. 23:43
반응형

문제: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GOPPaAeMDFAXB 

 

T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
def dfs(start, depth):
    global ans
    ans = max(ans, depth)

    for next in graph[start]:
        if visited[next]:
            continue
        visited[next] = True
        dfs(next, depth + 1)
        visited[next] = False

for test_case in range(1, T + 1):
    N, M = map(int, input().split())
    graph = [[] for _ in range(N+1)]
    ans = 0

    for i in range(M):
        x, y = map(int, input().split())
        graph[x].append(y)
        graph[y].append(x)
    visited = [False] * (N + 1)

    # 1~N 번 정점 모두 확인
    for i in range(1, N+1):
        visited[i] = True
        dfs(i, 1)
        visited[i] = False

    print(f"#{test_case}",ans)

 

정리

삼성 코테는 #을 반드시 출력해야하므로 print(f"#{test_case}", ans) 아니면 +를 이용하여 출력을 정해진 형식에 맞추어 정답을 제출하는 연습해보았습니다.

반응형