File tree Expand file tree Collapse file tree 3 files changed +86
-0
lines changed
product-of-array-except-self Expand file tree Collapse file tree 3 files changed +86
-0
lines changed Original file line number Diff line number Diff line change 1+ /*
2+
3+ 시간 복잡도: O(n)
4+ 공간 복잡도: O(1)
5+
6+ 해당 문제를 구할 때 바로 생각나지 않아 leet code의 코멘트들을 보며 힌트를 구했습니다.
7+ */
8+ function climbStairs ( n : number ) : number {
9+ if ( n <= 2 ) return n ;
10+
11+ let a = 1 ;
12+ let b = 2 ;
13+ for ( let i = 3 ; i <= n ; i ++ ) {
14+ let c = a + b ;
15+ a = b ;
16+ b = c ;
17+ }
18+ return b ;
19+ }
Original file line number Diff line number Diff line change 1+ /*
2+ 시간 복잡도: O(n)
3+ 공간 복잡도: O(1)
4+ */
5+ function productExceptSelf ( nums : number [ ] ) : number [ ] {
6+ const n = nums . length ;
7+ const answer = new Array < number > ( n ) ;
8+
9+ // 왼쪽 곱 채우기
10+ let leftProduct = 1 ;
11+ for ( let i = 0 ; i < n ; i ++ ) {
12+ answer [ i ] = leftProduct ;
13+ leftProduct *= nums [ i ] ;
14+ }
15+
16+ // 오른쪽 곱 채우기
17+ let rightProduct = 1 ;
18+ for ( let i = n - 1 ; i >= 0 ; i -- ) {
19+ answer [ i ] *= rightProduct ;
20+ rightProduct *= nums [ i ] ;
21+ }
22+ return answer ;
23+ }
24+
25+ /*
26+ // Time Limit Exceeded
27+ function productExceptSelf(nums: number[]): number[] {
28+ let answer = [];
29+ for (let i = 0; i < nums.length; i++) {
30+ const mulOfNums = nums.reduce((accumulator, currentValue, currentIndex) => {
31+ if (currentIndex !== i) {
32+ return accumulator * currentValue;
33+ }
34+ return accumulator;
35+ }, 1);
36+ answer.push(mulOfNums);
37+ }
38+ return answer;
39+ }
40+ */
Original file line number Diff line number Diff line change 1+ // 시간 복잡도(Time Complexity): O(n)
2+ // 공간 복잡도(Space Complexity): O(1)
3+ function isAnagram ( s : string , t : string ) : boolean {
4+ if ( s . length !== t . length ) return false ;
5+
6+ const count = new Array ( 26 ) . fill ( 0 ) ;
7+
8+ for ( let i = 0 ; i < s . length ; i ++ ) {
9+ count [ s . charCodeAt ( i ) - 97 ] ++ ;
10+ count [ t . charCodeAt ( i ) - 97 ] -- ;
11+ }
12+
13+ return count . every ( ( n ) => n === 0 ) ;
14+ }
15+
16+ /*
17+ // 첫 번째 풀이
18+ // 시간 복잡도(Time Complexity): O(n log n)
19+ // 공간 복잡도(Space Complexity): O(n)
20+
21+ function isAnagram(s: string, t: string): boolean {
22+ let baseString = s.split('').sort().toString();
23+ let targetString = t.split('').sort().toString();
24+
25+ return baseString === targetString ? true : false;
26+ }
27+ */
You can’t perform that action at this time.
0 commit comments