From 7fa722d43628efc8edc939641271b0c392497648 Mon Sep 17 00:00:00 2001 From: Gordon Choi Date: Mon, 19 Jan 2026 23:26:51 +0900 Subject: [PATCH 1/2] graph valid tree solution --- graph-valid-tree/radiantchoi.py | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 graph-valid-tree/radiantchoi.py diff --git a/graph-valid-tree/radiantchoi.py b/graph-valid-tree/radiantchoi.py new file mode 100644 index 0000000000..4b2af2eb29 --- /dev/null +++ b/graph-valid-tree/radiantchoi.py @@ -0,0 +1,34 @@ +from typing import List + +# 어떤 그래프가 Valid Tree려면? +# 순환이 발생하지 않으면서, 모든 노드가 연결되어 있어야 한다. +# n개의 노드를 모두 연결하는 데 필요한 간선의 갯수는 n - 1개 +# 순환 발생 탐지 -> Union Find + +class Solution: + def find(self, parent: List[int], n: int) -> int: + if parent[n] == n: + return n + + parent[n] = self.find(parent, parent[n]) + return parent[n] + + def union(self, parent: List[int], left: int, right: int) -> bool: + left_parent = self.find(parent, left) + right_parent = self.find(parent, right) + + if left_parent == right_parent: + return False + + parent[right_parent] = left_parent + return True + + def valid_tree(self, n: int, edges: List[List[int]]) -> bool: + parents = list(range(n)) + + for edge in edges: + # Union Find에서 False가 반환된다는 것은 순환이 발생한다는 것 + if not self.union(parents, edge[0], edge[1]): + return False + + return len(edges) == n - 1 From b302eaf69b85cfbc49003d5a9f766650fd98eacb Mon Sep 17 00:00:00 2001 From: Gordon Choi Date: Tue, 20 Jan 2026 11:16:26 +0900 Subject: [PATCH 2/2] missing number solution --- missing-number/radiantchoi.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 missing-number/radiantchoi.ts diff --git a/missing-number/radiantchoi.ts b/missing-number/radiantchoi.ts new file mode 100644 index 0000000000..624521c127 --- /dev/null +++ b/missing-number/radiantchoi.ts @@ -0,0 +1,21 @@ +function missingNumber(nums: number[]): number { + let occurence = new Map(); + + for (let i = 0; i <= nums.length; i++) { + occurence.set(i, false); + } + + for (const num of nums) { + occurence.set(num, true); + } + + const results = Array.from(occurence.entries()); + + for (const result of results) { + if (result[1] === false) { + return result[0]; + } + } + + return 0; +};