File tree Expand file tree Collapse file tree 3 files changed +83
-0
lines changed
Expand file tree Collapse file tree 3 files changed +83
-0
lines changed Original file line number Diff line number Diff line change 1+ /*
2+ 시간 복잡도: O(n)
3+ 공간 복잡도: O(n)
4+ */
5+ function containsDuplicate ( nums : number [ ] ) : boolean {
6+ const seen = new Set < number > ( ) ;
7+
8+ for ( const num of nums ) {
9+ if ( seen . has ( num ) ) {
10+ return true ;
11+ }
12+ seen . add ( num ) ;
13+ }
14+
15+ return false ;
16+ }
Original file line number Diff line number Diff line change 1+ /*
2+ 시간 복잡도: O(n²)
3+ 공간 복잡도: O(n)
4+ */
5+ function topKFrequent ( nums : number [ ] , k : number ) : number [ ] {
6+ const map = new Map < number , number > ( ) ;
7+ let numLength : number [ ] = nums ;
8+ let mapArray ;
9+
10+ while ( numLength . length > 0 ) {
11+ // 현재 기준 숫자
12+ const current = numLength [ 0 ] ;
13+ // 갯수 확인
14+ const elementNum = numLength . filter ( ( n ) => n === current ) ;
15+ // 확인한 숫자 제거
16+ const filteredNum = numLength . filter ( ( n ) => n !== current ) ;
17+
18+ numLength = filteredNum ;
19+ map . set ( current , elementNum . length ) ;
20+ }
21+ mapArray = [ ...map ] ;
22+ mapArray . sort ( ( a , b ) => b [ 1 ] - a [ 1 ] ) ;
23+
24+ // 상위 k개 num만 반환
25+ return mapArray . slice ( 0 , k ) . map ( ( [ num , _ ] ) => num ) ;
26+ }
Original file line number Diff line number Diff line change 1+ /*
2+ 시간 복잡도: O(n)
3+ 공간 복잡도: O(n)
4+ */
5+ function twoSum ( nums : number [ ] , target : number ) : number [ ] {
6+ const map = new Map < number , number > ( ) ;
7+
8+ for ( let i = 0 ; i < nums . length ; i ++ ) {
9+ const num = nums [ i ] ;
10+ const diff = target - num ;
11+
12+ if ( map . has ( diff ) ) {
13+ return [ map . get ( diff ) ! , i ] ;
14+ }
15+
16+ map . set ( num , i ) ;
17+ }
18+
19+ return [ ] ;
20+ }
21+
22+ /*
23+ 이전 풀이
24+ 시간 복잡도: O(n²)
25+ 공간 복잡도: O(1)
26+ function twoSum(nums: number[], target: number): number[] {
27+ for (let i = 0; i < nums.length; i++) {
28+ for (let j = 0; j < nums.length; j++) {
29+ // 동일한 index일 때는 안됨.
30+ if (i === j) {
31+ continue;
32+ }
33+ if (nums[i] + nums[j] === target) {
34+ return [i, j];
35+ }
36+ }
37+ return [];
38+ }
39+ }
40+
41+ */
You can’t perform that action at this time.
0 commit comments