목록알고리즘 인터뷰 (3)
거누의 개발노트
문제 이진 트리에서 두 노드 간 가장 긴 경로의 길이를 출력하라. 입력 TreeNode [1,2,3,4,5] 출력 3 먼저 내 코드에서 테스트 해보려면 배열을 리스트로 만드는 과정이 필요했다. class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def make_tree_by(lst, idx): parent = None if idx < len(lst): value = lst[idx] if value == None: return parent = TreeNode(value) parent.left = make_tree_by(lst, 2 * idx + 1) ..
문제 스택을 이용해 다음 연산을 지원하는 큐를 구현하라. 초기 셋팅 class MyQueue: def __init__(self): def push(self, x: int) -> None: def pop(self) -> int: def peek(self) -> int: def empty(self) -> bool: 입력 ["MyQueue","push","push","peek","pop","empty"] [[],[1],[2],[],[],[]] 출력 [null,null,null,1,1,false] 작성한 코드 class MyQueue: def __init__(self): self.stack = [] def push(self, x: int) -> None: self.stack.append(x) def pop(se..
문제 큐를 이용해 다음 연산을 지원하는 스택을 구현하라. 초기 셋팅 class MyStack: def __init__(self): def push(self, x:int): def top(self): def pop(self): def empty(self): 입력 ["MyStack","push","push","top","pop","empty"] [[],[1],[2],[],[],[]] 출력 [null,null,null,2,2,false] 작성한 코드 import collections class MyStack: def __init__(self): self.q = collections.deque() def push(self, x:int): return self.q.append(x) def top(self): re..