Xcode/Swift - Algorithm
Swift) LeetCode(Easy) - Best-Time-To-Buy-And-Sell-Stock(DP)
후르륵짭짭
2020. 7. 13. 19:04
728x90
반응형
leetcode.com/problems/best-time-to-buy-and-sell-stock/
Best Time to Buy and Sell Stock - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
안녕하세요 후르륵짭잡입니다.
** 전체 코드 **
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
반응형