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