068. 이진 탐색 트리
Medium
바이브코딩
MCPDataStructureTree
문제 설명
[문제]
이진 탐색 트리(BST, Binary Search Tree) MCP 서버를 구현하시오.
이진 탐색 트리는 각 노드가 "왼쪽 자식 < 자신 < 오른쪽 자식" 규칙을 지키는 트리이다. 이 규칙 덕분에 값을 빠르게 찾을 수 있고, 중위 순회(왼쪽 -> 자신 -> 오른쪽 순서로 방문)하면 값들이 오름차순으로 나온다. 예를 들어 10, 5, 15를 넣으면 중위 순회 결과는 5, 10, 15이다.
[구현할 함수]
- insert(value: int) -> int
value를 BST 규칙에 맞는 자리에 삽입한다. 삽입 후 트리의 전체 노드 수를 반환한다.
- search(value: int) -> bool
value가 트리에 있으면 True, 없으면 False를 반환한다.
- inorder_traversal() -> array<int>
트리를 중위 순회한 결과를 배열로 반환한다(BST이므로 오름차순).
[입력·상태]
서버는 정수 이진 탐색 트리를 상태로 유지한다. 초기 상태는 빈 트리이다.
[제약]
- 저장하는 값은 정수(int)이다.
- 빈 트리에서 search는 항상 False, inorder_traversal은 빈 배열 [] 이다.
- 중위 순회 결과는 항상 오름차순이다.
[예시]
insert(10) -> 1
insert(10); search(10) -> True
insert(10); search(99) -> False
insert(10); insert(5); insert(15); inorder_traversal() -> [5, 10, 15]
search(10) -> False # 빈 트리 (경계)
inorder_traversal() -> [] # 빈 트리 (경계)
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.