File tree Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[] } nums
3+ * @param {number } target
4+ * @return {number[] }
5+ */
6+ var twoSum = function ( nums , target ) {
7+ let result = [ ] ;
8+ let numPair = { } ;
9+
10+ for ( let i = 0 ; i < nums . length ; i ++ ) {
11+ numPair [ nums [ i ] ] = target - nums [ i ] ;
12+ }
13+
14+
15+
16+ for ( const key in numPair ) {
17+ let list = [ ] ;
18+ const reverseKey = numPair [ key ] ;
19+
20+ if ( parseInt ( key ) === numPair [ reverseKey ] ) {
21+ let firstNum ;
22+ let secNum ;
23+
24+ if ( parseInt ( key ) === reverseKey ) {
25+ firstNum = nums . indexOf ( reverseKey ) ;
26+ secNum = nums . indexOf ( reverseKey , firstNum + 1 ) ;
27+ } else {
28+ firstNum = nums . indexOf ( parseInt ( key ) ) ;
29+ secNum = nums . indexOf ( reverseKey ) ;
30+ }
31+
32+ result . push ( firstNum ) ;
33+ result . push ( secNum ) ;
34+
35+ return result ;
36+ }
37+ }
38+
39+ } ;
40+
41+ // TC : O(n)
42+ // 1. num 을 순회하며 numPair 객체를 만듦(num 길이 n)
43+ // 2. numPair 를 순회하며 키-값이 대칭되는 첫번째 쌍을 찾음 (numPair 길이 n)
44+ // 3. num을 순회하며 인덱스를 찾음 (num 길이 n)
45+ // O(3n) 따라서 시간복잡도는 O(n)
46+
47+ // SC : O(n)
48+ // 크기가 n만큼인 객체(numPair)를 생성하므로 공간 복잡도도 O(n)
49+
You can’t perform that action at this time.
0 commit comments