File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed
product-of-array-except-self Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change
1
+ /*
2
+ 풀이 :
3
+ 해당 인덱스 이전 값들의 곱을 before에 저장(인덱스 0 이전에는 값이 없으므로 1로 초기화)
4
+ 해당 인덱스 이후 값들의 곱을 after에 저장(인덱스 n - 1이후에는 값이 없으므로 1로 초기화)
5
+ 인덱스 0부터 반복문을 돌며 ans에 인덱스 이전값들의 곱 before를 곱함 & before값에 현재 num을 곱함
6
+ 인덱스 끝부터 반복문을 돌며 after를 이용해 동일 작업
7
+
8
+ nums의 길이 : N
9
+
10
+ TC : O(N)
11
+ 반복문 2회 O(N + N)
12
+
13
+ SC : O(1) (ans배열 제외)
14
+ N에 관계없이 before와 after 변수만 사용
15
+ */
16
+
17
+ #include < vector>
18
+ using namespace std ;
19
+
20
+ class Solution {
21
+ public:
22
+ vector<int > productExceptSelf (vector<int >& nums) {
23
+ int before = 1 ;
24
+ int after = 1 ;
25
+ vector<int > ans (nums.size (), 1 );
26
+
27
+ for (int i = 0 ; i < nums.size (); i++)
28
+ {
29
+ ans[i] *= before;
30
+ before *= nums[i];
31
+ }
32
+ for (int i = nums.size () - 1 ; i >= 0 ; i--)
33
+ {
34
+ ans[i] *= after;
35
+ after *= nums[i];
36
+ }
37
+ return ans;
38
+ }
39
+ };
You can’t perform that action at this time.
0 commit comments