🔖 문제
🔖접근 방식
이 문제의 경우 푸는 데에 시간이 많이 걸렸습니다.
처음에는 Best Time to Buy and Sell Stock 1의 문제의 해결 방식처럼 풀려고했습니다.
첫번째로 시도했던 방법은 최대값 , 최솟값을 찾은 후, profit구하고, 그다음으로 큰 최대값, 최솟값을 찾아서 profit에 더할려고했는데, 한 날에 주식매입을 했으면, 그 날 이후에 매도를 해야했기에 이 방법을 쓰지 못했습니다.
그래서 조금 더 단순하게 생각해볼려고했습니다.
sum이라는 변수를 두어 요소들을 다음 요소들과 비교하며 더해가는 방식으로 구현했습니다.
🔖문제 풀이 코드
class Solution {
public int maxProfit(int[] prices) {
if (prices == null || prices.length == 0) {
return 0;
}
int sum = 0;
for (int i = 0; i < prices.length - 1; i++) {
if (prices[i] < prices[i+1]) { // 현재 가격이 다음날 가격보다 작으면
sum += prices[i+1] - prices[i]; // 그 차이를 sum에 더함
}
}
return sum;
}
}