모델
기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다.
def rebuild_tree(preorder, inorder):
for row in (preorder,inorder):
if type(row) not in (list,tuple) or len(row) > 100 or any(type(v) is not int for v in row):
raise ValueError("at most 100 integer nodes")
if len(set(preorder)) != len(preorder) or len(set(inorder)) != len(inorder) or set(preorder) != set(inorder):
raise ValueError("same distinct node labels")
positions, cursor = {v:i for i,v in enumerate(inorder)}, 0
def visit(lo,hi):
nonlocal cursor
if lo == hi: return None
value = preorder[cursor]; cursor += 1
at = positions[value]
if not lo <= at < hi: raise ValueError("inconsistent traversals")
left = visit(lo,at)
right = visit(at+1,hi)
return value,left,right
return visit(0,len(inorder))기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다.
빈 트리와 한쪽 트리를 시험하고 입력을 바꾸지 않고 모순된 순회나 중복 라벨을 거부합니다.
실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요.
def rebuild_tree(preorder, inorder):
for row in (preorder,inorder):
if type(row) not in (list,tuple) or len(row) > 100 or any(type(v) is not int for v in row):
raise ValueError("at most 100 integer nodes")
if len(set(preorder)) != len(preorder) or len(set(inorder)) != len(inorder) or set(preorder) != set(inorder):
raise ValueError("same distinct node labels")
positions, cursor = {v:i for i,v in enumerate(inorder)}, 0
def visit(lo,hi):
nonlocal cursor
if lo == hi: return None
value = preorder[cursor]; cursor += 1
at = positions[value]
if not lo <= at < hi: raise ValueError("inconsistent traversals")
left = visit(lo,at)
right = visit(at+1,hi)
return value,left,right
return visit(0,len(inorder))구조화 데이터는 기본적인 구성원 검사를 통과해도 유효한 구조를 나타내지 못할 수 있습니다. BranchSpire는 프로젝트 파일을 보면서 그 차이를 살펴보는 Windows AI 코딩 작업 공간입니다. 소스 변경을 요청하기 전에 입력 계약과 호출자가 받을 것으로 기대하는 객체를 논의하세요.
구체적인 작업으로 전위 및 중위 순회로부터의 복원을 검토할 수 있습니다. 작은 유효 트리와 일관되지 않은 순회 쌍을 제공한 뒤, 연결된 모델에게 구현의 어디에서 둘을 구분하는지 살펴보도록 요청하세요. 호출자가 확인하지 않은 고유성을 제안 코드가 조용히 가정하지 않도록 레이블이 서로 달라야 한다는 요구사항을 명시하세요.
재귀 로직뿐 아니라 주변 인터페이스도 검토하세요. 잘못된 데이터를 어떻게 보고할지, 호출자가 특정 반환 표현에 의존하는지 결정하세요. 자체 프로젝트에서 빈 입력, 단일 노드, 잘못된 조합의 테스트 사례를 실행하세요. 성공 예제는 경로 하나를 보여주며, 명시적인 거부 사례는 허용 데이터의 경계를 정하는 데 도움이 됩니다.
BranchSpire는 지원되는 OpenAI 호환 또는 Anthropic 엔드포인트에 연결하며 필요한 경우 인증 정보를 사용합니다. 제공되는 어블리터레이션 AI 모델을 선택할 수 있고, 도구와 컨텍스트 한도는 서버가 정합니다. 연결을 이용해 제안을 발전시키고 의문을 제기한 뒤, 애플리케이션이 요구하는 구조에 맞춰 변경 내역과 실행 결과를 평가하세요.
순회의 순서도 일관된 구조를 나타내야 합니다. 작업을 논의할 때 같은 레이블이지만 순서가 잘못된 예제를 포함하세요. 제안된 구현이 그 불일치를 감지하는 지점을 모델에게 찾도록 요청하세요.
복원 계약이 명시적으로 지원하는 경우에만 허용하세요. 예시 작업은 서로 다른 레이블을 가정합니다. 검증과 호출자를 함께 검토하여, 문서화되지 않은 가정으로 구조를 만드는 대신 모호한 입력을 의도적으로 거부하세요.
사용처가 기대하는 노드 표현, 빈 트리 값, 자식 순서를 명시하세요. 수학적으로 동등한 트리라도 표현이 바뀌면 통합이 깨질 수 있습니다. 더 넓은 리팩터링을 수락하기 전에 사용처를 살펴보세요.
결과를 아는 짧은 테스트 사례를 제공하고 경계와 실패 경로를 설명하도록 요청하세요. 실제 소스 변경 내역을 검토한 뒤 프로젝트 도구로 실행하세요. 대응하는 검사 없이 긴 설명에만 의존하지 마세요.
BranchSpire · 업데이트 2026-10-25