2016년 3월 1일 화요일

11501 - 주식

메인 아이디어만 말하자면, "주가가 떨어지기 직전에 샀던 주식을 전부 팔아버린다." 이다.

모든 주식을 산다. 그리고 주가가 떨어진다면 기존에 샀던 모든 주식을 현재가로 매매한다.

이러면 "3. 아무것도 안한다" 는 고려할 필요가 없게 된다. 왜냐하면 다음 주가가 떨어진다면 현재가로 팔 것이고, 이 순간 현재가와 판매가는 같기 때문에 산 값 그대로 얻는다. 즉, 사지 않은 것과 동일하다.

아래 소스는 코드로 구현한 것이다.

Asia Regional - Daejeon 2015 I번 Stock

소스 보기

while(t--){

        scanf("%d", &n);
        stack<int> stock;

        lld cost = 0;
        while(n--){
            scanf("%d", &k);
            stock.push(k);
            cost -= k;

        }

        while(!stock.empty()){
            k = stock.top();
            while(!stock.empty() && stock.top() <= k){
                cost += k;
                stock.pop();
            }
        }
        printf("%lld\n", cost);
    }
댓글 쓰기

게시글 목록