All Possible Full Binary Trees - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 트리를 구성하는 노드 개수가 정수로 주어진다. 주어진 노드 개수를 전부 소비해서 만들 수 있는 가능한 모든 포화 이진트리(full-binary tree)를 반환하는 문제다. 물론 중복은 제외한다. 여기서 말하는 중복이란 동일한 모양을 가진 포화 이진트리를 말한다. 여기서 포인트는 가짓수를 반환하는 게 아니다. 실제로 트리를 반환해야 한다. 위의 예시 같은 경..
Find Valid Matrix Given Row and Column Sums - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 0 이상의 정수로 구성된 임의의 2차원 배열이 있다고 가정하자. n번째 row의 합 정보를 담고 있는 rowSum과 n번째 col의 합 정보를 담고 있는 colSum이 주어진다. rowSum과 colSum을 이용해 이 조건에 해당하는 2차원 배열을 반환하는 문제다. 정답은 여러 개가 나올 수 있고 그중 하나만 반환하면 된다. 예시 설..
Construct Binary Search Tree from Preorder Traversal - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 이진 탐색 트리의 전위 순회 결과가 list로 주어진다. 이를 이용해 이진 탐색 트리를 복원하는 문제다. 1. DFS from typing import * from collections import deque class Solution: def bstFromPreorder(self, preorder: List[int])..
All Paths From Source to Target - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 그래프의 edge 정보가 주어진다. 0번 노드 ~ N-1번 노드까지 가능한 모든 경로를 구해 반환하는 문제다. 1. DFS from typing import * class Solution: def allPathsSourceTarget(self, input_list: List[List[int]]) -> List[List[int]]: graph = {} len..
Sliding Window Maximum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 슬라이딩 윈도 사이즈 k가 주어진다. 슬라이딩 윈도를 수행하면서 윈도 내 가장 큰 정수를 list로 저장해서 반환하는 문제다. 예시는 다음과 같다. Input: nums = [1,3,-1,-3,5,3,6,7], and k = 3 Output: [3,3,5,5,6,7] Explanation: Window position Max --------------- ----- [1 3..
Serialize and Deserialize Binary Tree - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 이진트리가 주어진다. 이진트리를 직렬화(serialize)해 문자열로 반환하고, 반환된 문자열을 역직렬화(deserialize)해서 이진트리를 복원하는 메서드를 작성하는 문제다. 직렬화 및 역직렬화 방법에 제한은 없다. 1. 초기 접근법 처음에 나는 이 문제를 전위(pre-order), 중위(in-order) 순회 정보를 가지고 트리를 복구하는 ..