728x90
반응형
leetcode.com/problems/best-time-to-buy-and-sell-stock/
안녕하세요 후르륵짭잡입니다.
** 전체 코드 **
func maxProfit(_ prices: [Int]) -> Int {
var buy = 987654321
var maxProfit = 0
for index in 0..<prices.count{
let price = prices[index]
if price >= buy {
let sell = price - buy
if sell > maxProfit {
maxProfit = sell
}
}
else if price < buy {
buy = price
}
}
return maxProfit
}
** 문제 **
이 문제는 일단 주식 가격 배열이 주어지고
그 주식 가격 배열에서 주식을 사게 된다면 반드시 팔아야 할 때도 있어야합니다.
주식을 사지 않는다면 팔지도 말아야하고요
또한 주식의 팔 때 가격은 주식의 살 때 가격보다 작아서는 안됩니다.
즉, 마이너스 이익을 봐서는 안되는 거죠!
** 해결 **
방법은 간단합니다.
현재 산 가격 보다 다음 가격 보다 싸다면 빼주고
그 빼준 값이 현재 maxProfit 보다 크다면 maxProfit을 갱신해주는 겁니다.
그리고 현재 산 가격 보다 다음 가격이 더 싸다면
다시 새롭게 사줍니다.
** 영어 단어 **
transaction - 거래, 매매
At Most - 최대로
728x90
반응형
'Xcode > Swift - Algorithm' 카테고리의 다른 글
Swift) 프로그래머스(Lv1) 시저 암호 (String) (0) | 2020.07.14 |
---|---|
Swift) 프로그래머스(Lv1) 수박수박수박수박수? (String) (0) | 2020.07.13 |
Swift) LeetCode(Easy) - Climbing Stairs (DP) (0) | 2020.07.13 |
Swift) LeetCode(Easy) - Maximum Subarray(DP) (0) | 2020.07.08 |
Swift) LeetCode(Easy) - Two Sum (Dictionary) (0) | 2020.07.08 |
댓글