코딩 퀴즈 - 최소 홀수값 구하기
이번 코딩 퀴즈는 이진 탐색 트리(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
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!