Practice algorithms everyday for coding tests
bj, boj: BaekJoon
leet: leetcode
pgs: Programmers
explain
- set standard first and go better
- leet_11. water container: start each end side
- leet_15. when sum, sorting is useful. if less than target, go right, else go left
- Linked List with dummy(new root) node
- leet_24_SwapNodes_dummy.py
- leet_21_merge_LL.py
- get Intersection of LLs: leet_160
- BFS, DFS
- bj_1260, bj_2468, bj_2606
- leet22, leet112, leet130, leet1765(multi-source BFS!)
- pgsKAKAO2021_SocialDistance, pgs_network, pgs_targetNum
- Shortest path LEVEL(BFS): pgs_changeNumber
- CourseSchedule: leet_207, leet_210 (210이 합리적인 방법!)
- Dynamic Programing
- bj_10844(2dim, memoization)
- Binary Tree
- Traversal: leet_94(pre, post, in), leet_102(level-order, defaultdict)
- Depth: leet_111(min, max depth)
- Recover: leet_99(value change)
- Diameter(longest path): leet_543
- Subtree check: leet_572 (recursive)
- Path to leaf: leet_257
- Check same tree: leet_100
- Longest univalue: leet_687 (모든 node를 기준으로 체크해봐야할 때)
- Invert tree: leet_226 (tree 좌우 반전)
- count nodes: leet_222
- pathSum3: 모든 노드를 시작점으로 체크! (dfs_helper와 traverse) leet_437
- delete Node in BST: leet_450
- palindrome, start middle
- Binary Search
- Data Structures: Hash, Queue, Stack, Graph, Heapq