SSpanSorbus
AI 코딩 작업 공간

무방향 그래프의 단절선

최대 32개 정점의 단순 무방향 그래프에서 단절선을 찾습니다.

● ● ●SpanSorbus●
작업 흐름 · 무방향 그래프의 단절선 ×
def bridge_edges(n, edges):
    if type(n) is not int or not 0 <= n <= 32:
        raise ValueError("vertex count")
    if type(edges) is not list or len(edges) > 496:
        raise ValueError("edge count")
    graph = [set() for _ in range(n)]
    for edge in edges:
        if type(edge) is not tuple or len(edge) != 2 or any(
            type(x) is not int or not 0 <= x < n for x in edge):
            raise ValueError("edge endpoints")
        a, b = edge
        if a == b or b in graph[a]:
            raise ValueError("simple undirected edges")
        graph[a].add(b); graph[b].add(a)
    timer, found = 0, []
    entered, low = [-1] * n, [0] * n
    def visit(v, parent):
        nonlocal timer
        entered[v] = low[v] = timer; timer += 1
        for u in sorted(graph[v]):
            if u == parent:
                continue
            if entered[u] < 0:
                visit(u, v); low[v] = min(low[v], low[u])
                if low[u] > entered[v]:
                    found.append(tuple(sorted((v, u))))
            else:
                low[v] = min(low[v], entered[u])
    for v in range(n):
        if entered[v] < 0:
            visit(v, -1)
    return sorted(found)
✳최대 32개 정점의 단순 무방향 그래프에서 단절선을 찾습니다.
✓ 변경 사항적용하기 전에 검토하세요 ↗
작업 공간 예시 화면
01

적용하기 전에 검토하세요

실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요.

02

모델

기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다.

03

프로젝트

분리된 성분과 순환을 검사하고 입력을 바꾸지 않은 채 중복 간선, 자기 루프와 잘못된 끝점을 거부합니다.

작업 흐름

무방향 그래프의 단절선

작업 흐름 ↗
작업 흐름
def bridge_edges(n, edges):
    if type(n) is not int or not 0 <= n <= 32:
        raise ValueError("vertex count")
    if type(edges) is not list or len(edges) > 496:
        raise ValueError("edge count")
    graph = [set() for _ in range(n)]
    for edge in edges:
        if type(edge) is not tuple or len(edge) != 2 or any(
            type(x) is not int or not 0 <= x < n for x in edge):
            raise ValueError("edge endpoints")
        a, b = edge
        if a == b or b in graph[a]:
            raise ValueError("simple undirected edges")
        graph[a].add(b); graph[b].add(a)
    timer, found = 0, []
    entered, low = [-1] * n, [0] * n
    def visit(v, parent):
        nonlocal timer
        entered[v] = low[v] = timer; timer += 1
        for u in sorted(graph[v]):
            if u == parent:
                continue
            if entered[u] < 0:
                visit(u, v); low[v] = min(low[v], low[u])
                if low[u] > entered[v]:
                    found.append(tuple(sorted((v, u))))
            else:
                low[v] = min(low[v], entered[u])
    for v in range(n):
        if entered[v] < 0:
            visit(v, -1)
    return sorted(found)
AI 코딩 작업 공간

그래프 결과를 애플리케이션의 결정과 연결하세요

SpanSorbus는 실제 소스 파일의 맥락에서 연결성 로직을 검토하는 Windows용 코딩 작업 공간입니다. 애플리케이션이 그래프 결과로 어떤 결정을 내리는지 먼저 설명하세요. 순회나 출력 변경을 요청하기 전에 연결한 모델이 입력 표현과 사용 코드를 검토하도록 요청하세요.

유용한 작업으로 bridge_edges.py를 사용하여 제거하면 테스트 그래프의 연결된 부분이 분리되는 간선을 조사할 수 있습니다. 비교용 순환 그래프를 포함하고 예상 간선 목록을 명시하세요. 제안된 변경이 다른 종류의 입력을 조용히 허용하지 않도록 구현과 함께 단순 무방향 그래프 가정을 검토하세요.

루틴이 반환된 뒤에도 소프트웨어 작업은 계속됩니다. 호출 코드가 노드에 이름을 붙이고 간선을 표시하며 거부된 데이터를 처리하는 방법을 살펴본 뒤, 연결되지 않은 그래프와 빈 그래프 테스트 데이터로 프로젝트 검사를 실행하세요. 검토를 이러한 관찰 가능한 결과에 연결하세요. 정확한 그래프 설명만으로 애플리케이션이 실제 데이터를 예상 표현으로 매핑한다고 입증할 수는 없습니다.

SpanSorbus는 지원되는 OpenAI 호환 또는 Anthropic 엔드포인트에 연결하며 필요하면 자격 증명을 사용합니다. 엔드포인트가 제공하는 경우 무검열 AI 모델을 선택하고 제공업체 제한과 사용 가능한 도구를 확인하세요. 컨텍스트 한계는 모델과 서버에 따라 다르므로 범위가 제한된 테스트 데이터와 관련 사용 코드를 제공하여 코딩 대화에 초점을 맞추세요.

연결성 코드를 바꾸기 전의 질문

순환 밖의 모든 간선에 같은 처리가 필요한가요?

정확한 그래프 정의와 애플리케이션의 결정을 확인하세요. 예상 결과를 독립적으로 작성한 테스트 데이터를 사용하세요. 비공식적인 그래프 설명을 소프트웨어 요구 사항으로 옮기기 전에 방향성, 병렬 간선, 자기 루프에 대한 코드 가정을 검토하세요.

연결되지 않은 입력을 테스트하는 이유는 무엇인가요?

애플리케이션에 여러 별도 연결 요소가 있고 각각 관련 간선을 가질 수 있습니다. 한 노드에서 시작하는 순회는 다른 요소를 놓칠 수 있습니다. 여러 연결 요소를 포함한 테스트 데이터로 첫 번째 예상 간선뿐 아니라 전체 출력을 비교하세요.

가져온 데이터의 반복 간선을 제공해도 되나요?

먼저 허용 입력 계약을 살펴보세요. 예시는 단순 그래프를 기대하며 중복을 거부합니다. 가져온 데이터에 반복 간선이 있다면 그래프 루틴 변경을 요청하기 전에 가져오기 단계에서 정규화할지 오류를 보고할지 결정하세요.

간선을 표시할 때 사용 코드가 무엇을 보존해야 하나요?

내부 노드 식별자와 사용자에게 보이는 레이블의 매핑, 안정적인 출력에 필요한 순서를 정의하세요. 수정 제안과 함께 매핑을 검토하세요. 내부 간선 쌍이 정확해도 호출 코드가 잘못된 레이블과 연결하면 오해를 부르는 결과가 됩니다.

Windows용 다운로드 ↗

SpanSorbus · 업데이트 2026-10-25