본문으로 건너뛰기

코딩 퀴즈 - 최소 홀수값 구하기

코딩 퀴즈 - 최소 홀수값 구하기

이번 코딩 퀴즈는 이진 탐색 트리(Binary Search Tree, BST)를 활용하여 주어진 리스트 내 최소 홀수값을 구하는 함수를 작성하는 것입니다.

함수는 입력으로 주어진 정수 리스트를 BST에 추가하고, 리스트 내 최소 홀수값을 찾아 이를 반환해야 합니다.

예를 들어 [30, 20, 40, 10, 25, 35, 45]가 입력으로 주어진다면, solution 함수는 25를 반환해야 합니다.


solution 코드 작성
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None

def insertIntoBST(root, val):
if not root:
return TreeNode(val)
if val < root.val:
root.left = insertIntoBST(root.left, val)
else:
root.right = insertIntoBST(root.right, val)
return root


def findMinValue(root, condition):
if not root:
return float("inf")
if condition(root.val):
return min(
root.val,
findMinValue(root.left, condition),
findMinValue(root.right, condition),
)
else:
return min(
findMinValue(root.left, condition), findMinValue(root.right, condition)
)

def solution(numbers):
# 여기에 코드를 작성하세요
return



제한 사항

  • 입력 리스트에는 중복되는 정수가 없다고 가정합니다.

  • BST는 중복된 값을 허용하지 않습니다.

  • 입력 리스트는 비어 있지 않으며, 최소 한 개 이상의 정수를 포함합니다.

  • 조건에 해당하는 노드가 없는 경우, 함수는 None을 반환해야 합니다.




입출력 예시

  • 입력: [10, 5, 15, 3, 7, 13, 18]

  • 출력: 3