from collections import defaultdict
# 그래프 생성graph = defaultdict(list)graph['A'= ['B''C''D']graph['B'= ['A''C']graph['C'= ['A''B''D']graph['D'= ['A''C']
# Eulerian 경로 검사 (이때 Eulerian은 그래프를 정확히 한 번만 지나는 경로)
def has_eulerian_path(graph):    odd_degree_count = 0    # 그래프의 정점 중 홀수인 정점의 개수를 찾음    # 차수가 짝수이거나 최대 두 개의 정점만이 홀수 차수를 가지면 경로 존재 O    # Eulerian는 위의 조건들 중 최소 하나가 성립되어야 존재한다고 설정댐
    for node in graph:        if len(graph[node]) % 2 != 0:            odd_degree_count += 1    return odd_degree_count == 0
# Eulerian 경로 찾기# 앞선 Eulerian경로가 존재하지 않는다면 None 을 반환함# 만약 Eulerian가 존재한다면 경로를 리스트인 path와 stack에 저장함# stack(이동)이 종료되면 path 의 카운트 증가 (경로 찾기 종료)\#  만약 더 이동할 수 있는 다리가 남아있다면 stack은 루프된다# 경로 탐색 종료시 Eulerian에 경로가 저장됨
def find_eulerian_path(graph):    if not has_eulerian_path(graph):        return None
    path = []    stack = []    current_node = next(iter(graph))    while True:        if len(graph[current_node]) == 0:            path.append(current_node)            if len(stack== 0:                break            current_node = stack.pop()        else:            stack.append(current_node)            neighbor = graph[current_node][0]            graph[current_node].remove(neighbor)            graph[neighbor].remove(current_node)            current_node = neighbor    return path
# Königsberg Bridge Problemg 해결
# 앞서 None이 실행되었다면 Eulerian 부분에서 한 번씩 건너는 경로를 찾지 못한 것이므로 후자를 출력함# None이 아니라면 경로가 존재한다고 말하고,for 루프문을 통해 각 노드(섬들)들 간의 연결을 보이며# 다리를 건너는 순서를 그래프로 표현한다.path = find_eulerian_path(graph)if path is not None:    print("다리를 모두 건너는 경로가 있습니다:")    for i in range(len(path- 1):        print(f"{path[i]} - {path[i+1]}")else:    print("다리를 모두 건너는 경로가 없습니다.")\


대충 이렇게 짠건데

그래프가 좀 이상한모양으로나와


이렇게나오는데


내가 만드려한건 이거임

어디서부터꼬인지는모르겠는데

답이안나오넹...

파이썬뉴비라 나혼자선 답을못찾겟다