반응형
문제
You are given an array prices where prices[i] is the price of a given stock on the ith day.
Find the maximum profit you can achieve. You may complete as many transactions as you like (i.e., buy one and sell one share of the stock multiple times).
Note: You may not engage in multiple transactions simultaneously (i.e., you must sell the stock before you buy again).
- 그날의 stock 가격이 prices라는 array에 1일부터 차례로 주어집니다
- 우리는 원하는 만큼 사고팔 수 있고, 사고팔아서 최대 이익을 내는 게 목표입니다.
예시
- 첫 번째의 input array는 [7,1,5,3,6,4]입니다. 첫 번째 날의 이 주식 가격은 7달러입니다. 2번째 날은 1달러 3번째날은 5달러 순으로 6번째 날까지 있습니다. 최대 수익을 내기위해, 2번째날(price = 1)사고 2번째날 (price = 5) 일에 팔고, 3번째 날 3일에 다시 사고,
풀이
class Solution {
fun maxProfit(prices: IntArray): Int {
var result = 0 //처음 수익은 0입니다.
for(i in 0 until prices.size-1){ //마지막 날은 사고 팔수없기때문에 마지막에서 두번째 날까지만 거래할수있도록 -1을 빼줍니다.
if(prices[i] < prices[i+1]){ // i번째날이 그다음날보다 작을때만 아래 코드를 실행합니다.
result = result + prices[i+1] - prices[i] //다음날의 주식가격이 비싸다면 수익으로 나오고 거기에 총수익을 더합니다.
} else{
//없다면 다음 i로 넘어갑니다.
}
}
return result //result를 반환합니다.
}
}
반응형