Daily LeetCode Challenge - 901. Online Stock Span

Min Young Kim·2022년 11월 9일
0

algorithm

목록 보기
27/198

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)
 */
profile
길을 찾는 개발자

0개의 댓글