Algorithm/CPP

[C++/LeetCode]주식을 사고 팔기 가장 좋은 시기 II

박한결 2021. 6. 15. 14:38

뭔가 이 문제를 풀어보니까 알고리즘을 푸는데 언어는 문제가 아닌거 같기도 하고... 일단 언어는 문제를 풀기 위한 도구일뿐이고 결국에 핵심 로직은 똑같으니까..🙄? 

 

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int profit = 0;
        for (int i = 1; i < prices.size(); i++){
            profit += max(prices[i]-prices[i-1], 0);
        }
        return profit;
        
    }
};

 

한 번의 거래로 낼 수 있는 최대 이익을 찾는 문제인데 예를 들어서 [7, 1, 5, 3, 6, 4]인 경우, 1일 때 사서 6일 때 팔면 최대 이익을 산출 할 수 있다. 브루트 포스로 하면 c++은 런타임 에러가 나지 않을 수도 있지만, 굳이 답이 보이는 문제에서 돌아갈 필요는 없으니까 profit 에 현재 값과 이전 값을 뺐을 때 양수가 나오면 더해주는 방법을 사용했다.