적용하기 전에 검토하세요
실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요.
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)실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요.
기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다.
분리된 성분과 순환을 검사하고 입력을 바꾸지 않은 채 중복 간선, 자기 루프와 잘못된 끝점을 거부합니다.
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)SpanSorbus는 실제 소스 파일의 맥락에서 연결성 로직을 검토하는 Windows용 코딩 작업 공간입니다. 애플리케이션이 그래프 결과로 어떤 결정을 내리는지 먼저 설명하세요. 순회나 출력 변경을 요청하기 전에 연결한 모델이 입력 표현과 사용 코드를 검토하도록 요청하세요.
유용한 작업으로 bridge_edges.py를 사용하여 제거하면 테스트 그래프의 연결된 부분이 분리되는 간선을 조사할 수 있습니다. 비교용 순환 그래프를 포함하고 예상 간선 목록을 명시하세요. 제안된 변경이 다른 종류의 입력을 조용히 허용하지 않도록 구현과 함께 단순 무방향 그래프 가정을 검토하세요.
루틴이 반환된 뒤에도 소프트웨어 작업은 계속됩니다. 호출 코드가 노드에 이름을 붙이고 간선을 표시하며 거부된 데이터를 처리하는 방법을 살펴본 뒤, 연결되지 않은 그래프와 빈 그래프 테스트 데이터로 프로젝트 검사를 실행하세요. 검토를 이러한 관찰 가능한 결과에 연결하세요. 정확한 그래프 설명만으로 애플리케이션이 실제 데이터를 예상 표현으로 매핑한다고 입증할 수는 없습니다.
SpanSorbus는 지원되는 OpenAI 호환 또는 Anthropic 엔드포인트에 연결하며 필요하면 자격 증명을 사용합니다. 엔드포인트가 제공하는 경우 무검열 AI 모델을 선택하고 제공업체 제한과 사용 가능한 도구를 확인하세요. 컨텍스트 한계는 모델과 서버에 따라 다르므로 범위가 제한된 테스트 데이터와 관련 사용 코드를 제공하여 코딩 대화에 초점을 맞추세요.
정확한 그래프 정의와 애플리케이션의 결정을 확인하세요. 예상 결과를 독립적으로 작성한 테스트 데이터를 사용하세요. 비공식적인 그래프 설명을 소프트웨어 요구 사항으로 옮기기 전에 방향성, 병렬 간선, 자기 루프에 대한 코드 가정을 검토하세요.
애플리케이션에 여러 별도 연결 요소가 있고 각각 관련 간선을 가질 수 있습니다. 한 노드에서 시작하는 순회는 다른 요소를 놓칠 수 있습니다. 여러 연결 요소를 포함한 테스트 데이터로 첫 번째 예상 간선뿐 아니라 전체 출력을 비교하세요.
먼저 허용 입력 계약을 살펴보세요. 예시는 단순 그래프를 기대하며 중복을 거부합니다. 가져온 데이터에 반복 간선이 있다면 그래프 루틴 변경을 요청하기 전에 가져오기 단계에서 정규화할지 오류를 보고할지 결정하세요.
내부 노드 식별자와 사용자에게 보이는 레이블의 매핑, 안정적인 출력에 필요한 순서를 정의하세요. 수정 제안과 함께 매핑을 검토하세요. 내부 간선 쌍이 정확해도 호출 코드가 잘못된 레이블과 연결하면 오해를 부르는 결과가 됩니다.
SpanSorbus · 업데이트 2026-10-25