Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions climbing-stairs/juhui-jeong.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*

시간 복잡도: O(n)
공간 복잡도: O(1)

해당 문제를 구할 때 바로 생각나지 않아 leet code의 코멘트들을 보며 힌트를 구했습니다.
*/
function climbStairs(n: number): number {
if (n <= 2) return n;

let a = 1;
let b = 2;
for (let i = 3; i <= n; i++) {
let c = a + b;
a = b;
b = c;
}
return b;
}
40 changes: 40 additions & 0 deletions product-of-array-except-self/juhui-jeong.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
시간 복잡도: O(n)
공간 복잡도: O(1)
*/
function productExceptSelf(nums: number[]): number[] {
const n = nums.length;
const answer = new Array<number>(n);

// 왼쪽 곱 채우기
let leftProduct = 1;
for (let i = 0; i < n; i++) {
answer[i] = leftProduct;
leftProduct *= nums[i];
}

// 오른쪽 곱 채우기
let rightProduct = 1;
for (let i = n - 1; i >= 0; i--) {
answer[i] *= rightProduct;
rightProduct *= nums[i];
}
return answer;
}

/*
// Time Limit Exceeded
function productExceptSelf(nums: number[]): number[] {
let answer = [];
for (let i = 0; i < nums.length; i++) {
const mulOfNums = nums.reduce((accumulator, currentValue, currentIndex) => {
if (currentIndex !== i) {
return accumulator * currentValue;
}
return accumulator;
}, 1);
answer.push(mulOfNums);
}
return answer;
}
*/
27 changes: 27 additions & 0 deletions valid-anagram/juhui-jeong.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// 시간 복잡도(Time Complexity): O(n)
// 공간 복잡도(Space Complexity): O(1)
function isAnagram(s: string, t: string): boolean {
if (s.length !== t.length) return false;

const count = new Array(26).fill(0);

for (let i = 0; i < s.length; i++) {
count[s.charCodeAt(i) - 97]++;
count[t.charCodeAt(i) - 97]--;
}

return count.every((n) => n === 0);
}

/*
// 첫 번째 풀이
// 시간 복잡도(Time Complexity): O(n log n)
// 공간 복잡도(Space Complexity): O(n)

function isAnagram(s: string, t: string): boolean {
let baseString = s.split('').sort().toString();
let targetString = t.split('').sort().toString();

return baseString === targetString ? true : false;
}
*/