λ¬Έμ νμ
i
λ μ£Όμ κ°κ²©μ prices[i]
κ³Ό κ°μ΄ λ°°μ΄ ννλ‘ μ£Όμ΄μ§λ€.
λ§€μΌ μ£Όμμ μ΄μ§ νμ§ κ²°μ ν΄μΌνλ€.
κ²°κ³Όμ μΌλ‘ μ»μ΄μ§λ μ΅λ μμ΅μ λ°νν΄μΌνλ€.
νμ΄
1οΈβ£ λ΄λ¦Ό μ°¨μμΌλ‘ λ°λλ μκ° μμ΅ κ³μ°
νμ΄κ° μ λ μ€λ₯΄μ§ μμμ λͺ κ°μ§ μμλ₯Ό λ€μ΄λ΄€λ€.
Case 1.
1, 6, 7, 100
μ κ²½μ°λ 1μ μ¬μ 6μ νκ³ 7μ μ¬μ 100μ νλ©΄,
1μ μ¬μ 100μ νλκ²λ³΄λ€ μν΄μ΄λ€. 6~7 μ κ³΅λ°±μ΄ μκΈ°κΈ° λλ¬Έμ΄λ€.
Case 2.
1, 6, 5, 100
μ κ²½μ°λ 1μ μ¬μ 6μ νκ³ , 5μ μ¬μ 100μ νλ©΄,
1μ μ¬μ 100μ νλ κ²λ³΄λ€ μ΄λμ΄λ€. 5~6 κ΅μ§ν© λΆλΆμ΄ μ겨 μΆκ°μ μΈ μ΄λμ΄ λ μ μλ€.
Case 3.
1, 6, 6, 100
μ κ²½μ°λ 1μ μ¬μ 6μ νκ³ 6μ μ¬μ 100μ ν μμ΅κ³Ό
1μ μ¬μ 100μ ν μμ΅μ΄ κ°λ€.
κ²°λ‘ μ, μ£Όμ κ°κ²©μ΄ μ€λ¦μ°¨μμΌλ‘ κ°λ€κ° κ°κ²©μ΄ λ¨μ΄μ§λ©΄
κ·Έ μ λ νκ³ λ¨μ΄μ§ κ°κ²©μΌλ‘ λ€μ μ¬λ λ°©μμΌλ‘ ꡬννλ©΄ λκ² λ€ μκ°μ΄ λ€μλ€.
class Solution {
public int maxProfit(int[] prices) {
int profit = 0;
int buy = prices[0];
int sell = prices[0];
for (int i = 1; i < prices.length; i++) {
if (prices[i] > sell) {
sell = prices[i];
} else {
profit += sell - buy;
buy = prices[i];
sell = buy;
}
}
if (buy != sell) {
profit += sell - buy;
}
return profit;
}
}
κ³μ μ£Όμ κ°κ²©μ΄ μ€λ¦μ°¨μμΌλ‘ μ§νλλ€κ° λλ κ²½μ°λ, μμ΅μ for
λ¬Έ λ΄μμ κ³μ°μ λͺ»ν΄μ£ΌκΈ° λλ¬Έμ
λ§μ§λ§ 쑰건문μΌλ‘ κ³μ°ν΄μ£Όμ΄μΌ νλ€.
κ²°κ³Ό
2οΈβ£ λ€λ₯Έ νμ΄
λ€λ₯Έ νμ΄λ₯Ό νμΈν΄λ³΄λ λ κ°λ¨νκ² ν΄κ²°ν μ μμλ€.
λ΄κ° μΈμλ¨λ κ°μ 3λ²μ νμ©νλ©΄, λ κ°λ¨νκ² νμ΄ν μ μμλ€...!
Case 3.
1, 6, 6, 100
μ κ²½μ°λ 1μ μ¬μ 6μ νκ³ 6μ μ¬μ 100μ ν μμ΅κ³Ό
1μ μ¬μ 100μ ν μμ΅μ΄ κ°λ€.
μ€λ¦μ°¨μμΌλ‘ κ°κ²©μ΄ λ€μ΄μ€λ κ²½μ° κ³μ νλ©΄ λλκ²μ΄λ€.
λ§μ½, λ΄λ¦Όμ°¨μμ΄ λλ μκ°μ νμ§ μκ³ μ¬κΈ°λ§ νλ©΄ λλ€.
class Solution {
public int maxProfit(int[] prices) {
int profit = 0;
int buy = prices[0];
for (int i = 1; i < prices.length; i++) {
if (prices[i] >= buy) {
profit += prices[i] - buy;
buy = prices[i];
} else {
buy = prices[i];
}
}
return profit;
}
}
κ²°κ³Ό
μ΄μ νμ΄λ³΄λ€ λ©λͺ¨λ¦¬λ₯Ό μ‘°κΈ λ μλ μ μμλ€.
π νκ³
λ€λ₯Έ μ¬λμ νμ΄λ₯Ό λ³΄κ³ κ°μ ν μ½λλ, μ΄μ©λ©΄ λλ μ²μμ 지 μ μμμν λ° λΌλ μκ°μ΄ λ€μλ€.
λ¬Έμ λ₯Ό νκΈ° μν μν©μ κ°μ νκ³ , μ½λλ‘μ ꡬνν λ
μ¬λ¬κ°μ§ μΈ‘λ©΄μ μκ°ν΄λ³΄κ³ , μ½λλ‘μ λ μ½κ² ꡬνν μ μλ λΆλΆμ μ μ νν΄μΌκ² λ€.