뭔가 이 문제를 풀어보니까 알고리즘을 푸는데 언어는 문제가 아닌거 같기도 하고... 일단 언어는 문제를 풀기 위한 도구일뿐이고 결국에 핵심 로직은 똑같으니까..🙄?
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 에 현재 값과 이전 값을 뺐을 때 양수가 나오면 더해주는 방법을 사용했다.
'Algorithm > CPP' 카테고리의 다른 글
[C++/LeetCode/Top Interview Questions]String (0) | 2021.06.16 |
---|---|
[C++/LeetCode/Top Interview Questions]Array (0) | 2021.06.15 |
[C++, LeetCode] Contains Duplicate 벡터에 중복 값 포함되었는지 확인하기 (0) | 2021.06.15 |
[C++/LeetCode]Rotate Array(벡터 값 회전하기) (0) | 2021.06.15 |
[C++/LeetCode] 정렬된 배열(벡터)에서 중복 제거하기 (0) | 2021.06.15 |