Skip to content

Commit 4fe8ea0

Browse files
authored
Merge pull request #774 from YeomChaeeun/main
2 parents 834ca1e + 5cdfab5 commit 4fe8ea0

File tree

4 files changed

+107
-0
lines changed

4 files changed

+107
-0
lines changed

โ€Žmaximum-subarray/YeomChaeeun.ts

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* ์—ฐ์†๋˜๋Š” ์„œ๋ธŒ ๋ฐฐ์—ด๋กœ ์ตœ๋Œ€ ํ•ฉ์„ ๊ตฌํ•˜๊ธฐ
3+
* ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณต์žก๋„
4+
* - ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
5+
* - ๊ณต๊ฐ„ ๋ณต์žก๋„: O(1)
6+
* @param nums
7+
*/
8+
function maxSubArray(nums: number[]): number {
9+
if(nums.length === 1) return nums[0]
10+
11+
let currentSum = nums[0]
12+
let maxSum = nums[0]
13+
for(let i = 1; i < nums.length; i++) {
14+
currentSum = Math.max(nums[i], currentSum + nums[i])
15+
// ์ตœ๋Œ€๊ฐ’ ๊ฐฑ์‹ 
16+
maxSum = Math.max(maxSum, currentSum)
17+
}
18+
19+
return maxSum
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/**
2+
* ๋ณธ์ธ ์ธ๋ฑ์Šค์— ์žˆ๋Š” ๊ฐ’์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์ˆ˜์˜ ๊ณฑ
3+
* ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณต์žก๋„
4+
* - ์‹œ๊ฐ„๋ณต์žก๋„: O(n)
5+
* - ๊ณต๊ฐ„๋ณต์žก๋„: O(1)
6+
* @param nums
7+
*/
8+
function productExceptSelf(nums: number[]): number[] {
9+
let len = nums.length
10+
let output = Array(len).fill(1)
11+
12+
/* ex) [1, 2, 3, 4]
13+
left >>>
14+
i = 0 -> 1 = 1
15+
i = 1 -> 1 * 1 = 1
16+
i = 2 -> 1 * 1 * 2 = 2
17+
i = 3 -> 1 * 1 * 2 * 3 = 6
18+
*/
19+
// ์™ผ์ชฝ๋ถ€ํ„ฐ ๋ˆ„์  ๊ณฑ
20+
let left = 1
21+
for (let i = 0; i < len; i++) {
22+
output[i] *= left
23+
left *= nums[i]
24+
}
25+
26+
/*
27+
right >>>
28+
i = 3 -> 1 = 1
29+
i = 2 -> 1 * 4 = 4
30+
i = 1 -> 1 * 4 * 3 = 12
31+
i = 3 -> 1 * 4 * 3 * 2 = 24
32+
33+
output >>>
34+
i = 0 -> 1 * 24 = 24
35+
i = 1 -> 1 * 12 = 12
36+
i = 2 -> 2 * 4= 8
37+
i = 3 -> 6 * 1 = 6
38+
*/
39+
// ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ ๋ˆ„์  ๊ณฑ์„ output ๊ฐ ์ž๋ฆฌ์— ๊ณฑํ•จ
40+
let right = 1
41+
for (let i = len - 1; i >= 0; i--) {
42+
output[i] *= right
43+
right *= nums[i]
44+
}
45+
46+
return output
47+
}

โ€Žreverse-bits/YeomChaeeun.ts

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* ์ •์ˆ˜๋ฅผ ๋น„ํŠธ๋กœ ๋ณ€ํ™˜ํ›„ ๋’ค์ง‘์–ด์„œ ๋‹ค์‹œ ์ •์ˆ˜๋กœ ๋ฐ˜ํ™˜
3+
* ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณต์žก๋„
4+
* - ์‹œ๊ฐ„๋ณต์žก๋„: O(1)
5+
* - ๊ณต๊ฐ„๋ณต์žก๋„: O(1)
6+
* @param n
7+
*/
8+
function reverseBits(n: number): number {
9+
// 2์ง„์ˆ˜ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜
10+
let arr = n.toString(2).split('')
11+
let len = arr.length
12+
// 32๋น„ํŠธ ์ •๋ ฌ - ๋ถ€์กฑํ•œ ์•ž์ชฝ์— 0์œผ๋กœ ์ฑ„์›€
13+
for (let i = 0; i < (32 - len); i++) {
14+
arr.unshift('0');
15+
}
16+
// ๋’ค์ง‘์€ ํ›„ ํ•ฉ์นจ
17+
let result = arr.reverse().join('')
18+
// 2์ง„์ˆ˜ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜
19+
return parseInt(result,2)
20+
}

โ€Žtwo-sum/YeomChaeeun.ts

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* ๋ฐฐ์—ด ๋‘ ์ˆ˜์˜ ํ•ฉ์ด target ๊ณผ ๊ฐ™์€ ๊ฐ’
3+
* ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณต์žก๋„:
4+
* - ์‹œ๊ฐ„๋ณต์žก๋„: O(n^2)
5+
* - ๊ณต๊ฐ„๋ณต์žก๋„: O(1)
6+
* @param nums
7+
* @param target
8+
*/
9+
function twoSum(nums: number[], target: number): number[] {
10+
let result: number[] = [];
11+
12+
for(let i = 0; i < nums.length; i++) {
13+
for(let j = i + 1; j < nums.length; j++) {
14+
if(nums[i] + nums[j] === target) {
15+
result.push(i, j);
16+
return result;
17+
}
18+
}
19+
}
20+
}

0 commit comments

Comments
ย (0)