본문 바로가기
Xcode/Swift - Algorithm

Swift) LeetCode(Easy) - Best-Time-To-Buy-And-Sell-Stock(DP)

by 후르륵짭짭 2020. 7. 13.
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
반응형

댓글