diff --git a/climbing-stairs/nakjun12.ts b/climbing-stairs/nakjun12.ts new file mode 100644 index 000000000..9cd27e19b --- /dev/null +++ b/climbing-stairs/nakjun12.ts @@ -0,0 +1,10 @@ +// T.C: O(n) +// S.C: O(n) + +function climbStairs(n: number) { + const dp = { 1: 1, 2: 2 }; + for (let i = 3; i <= n; i++) { + dp[i] = dp[i - 1] + dp[i - 2]; + } + return dp[n]; +} diff --git a/valid-anagram/nakjun12.ts b/valid-anagram/nakjun12.ts new file mode 100644 index 000000000..bf67d1d90 --- /dev/null +++ b/valid-anagram/nakjun12.ts @@ -0,0 +1,19 @@ +function isAnagram(s: string, t: string): boolean { + if (s.length !== t.length) return false; + + // 공간 복잡도: O(k) + const hash: { [key: string]: number } = {}; + + // 시간 복잡도: O(n) + for (let char of s) { + hash[char] = (hash[char] || 0) + 1; + } + + // 시간 복잡도: O(n) + for (let char of t) { + if (!hash[char]) return false; + hash[char]--; + } + + return true; +}