Problem From.
https://leetcode.com/problems/online-stock-span/
오늘 문제는 주식 가격이 하나씩 주어졌을때, 그 가격을 계속 누적해가면서, 해당 가격보다 적거나 같은 가격이 그 전날에 몇일이나 연속되는지를 보는 문제였다.
첫날은 100밖에 없으니 1을 반환
둘째날은 80이 들어왔지만 100보다 적으니 1을 반환
셋째날은 60이 들어왔지만 80보다 적으니 1을 반환
넷째날은 70이 들어와서 60보다는 크지만 그 전전날인 80보다는 적으니 2를 반환하는 식이었다.
들어오는 가격을 arrayList 에 누적해가면서 가격이 들어올때마다 체크를 해주는 식으로 해결하였다.
class StockSpanner() {
var list = arrayListOf<Int>()
fun next(price: Int): Int {
var cnt = 1
for(i in list.size - 1 downTo 0) {
if(list[i] <= price) {
cnt += 1
}else {
break
}
}
list.add(price)
return cnt
}
}
/**
* Your StockSpanner object will be instantiated and called as such:
* var obj = StockSpanner()
* var param_1 = obj.next(price)
*/