File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ *
3
+ * μ κ·Ό λ°©λ² : dp μ¬μ©
4
+ * - λ°°μ΄ κΈΈμ΄κ° 1κ° μΌλλ 첫 λ²μ¨° κ° λ¦¬ν΄νκ³ , 2κ°λ©΄ λ ν° μλ₯Ό 리ν΄νλ€.
5
+ * - 3κ° λΆν°λ λ°λ‘ μμ§ κ°μ νμ¬μ§ κ°μ λν κ°κ³Ό μμμ§μ κ°μ λΉκ΅ν΄μ ν° κ°μ κ³μ°νλ€.
6
+ * - λ€μ μ§ κ°μ νμ¬κΉμ§μ κ° νμ©νκΈ° μν΄μ, λ°λ‘ μμ§, μμμ§ κ°μ μ
λ°μ΄νΈν΄μ€λ€.
7
+ * - νμ¬ κ°μ΄ μ μ₯λ μμ§κ°μ 리ν΄νλ€.
8
+ *
9
+ * μκ°λ³΅μ‘λ :
10
+ * - μ£Όμ΄μ§ μ«μ λ°°μ΄ κΈΈμ΄λ§νΌ 1ν μννλκΉ O(n)
11
+ *
12
+ * 곡κ°λ³΅μ‘λ :
13
+ * - μμ§κ³Ό μμμ§ κ°μ 2κ°μ λ³μμ μ μ₯ν΄μΌνλκΉ O(1)
14
+ *
15
+ */
16
+ /**
17
+ * @param {number[] } nums
18
+ * @return {number }
19
+ */
20
+ var rob = function ( nums ) {
21
+ if ( nums . length === 1 ) return nums [ 0 ] ;
22
+ if ( nums . length === 2 ) return Math . max ( nums [ 0 ] , nums [ 1 ] ) ;
23
+
24
+ let prevPrevHouse = nums [ 0 ] ;
25
+ let prevHouse = Math . max ( nums [ 0 ] , nums [ 1 ] ) ;
26
+
27
+ for ( let i = 2 ; i < nums . length ; i ++ ) {
28
+ const current = Math . max ( prevHouse , prevPrevHouse + nums [ i ] ) ;
29
+ prevPrevHouse = prevHouse ;
30
+ prevHouse = current ;
31
+ }
32
+
33
+ return prevHouse ;
34
+ } ;
You canβt perform that action at this time.
0 commit comments