자라는 개발자/문제풀이

백준 c++ 17952 과제는 끝나지 않아!

자란다 2022. 1. 26. 20:04
728x90
반응형

17952 과제는 끝나지 않아!

 

문제풀이

#include <iostream>
#include <stack>
using namespace std;
void fast_io(void)
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
}
int main()
{
    fast_io();
    int n, res = 0;
    stack<pair<int, int>> s;
    cin >> n;
    while (n--)
    {
        bool num;
        cin >> num;
        if (num) //1일때
        {
            int a, b;
            cin >> a >> b; //점수 소요시간
            s.push(make_pair(a, b));
        }
        if (!s.empty())
        {
            s.top().second--;
            if (s.top().second == 0)//다했으면 이전 과제
            {
                res += s.top().first;
                s.pop();
            }
        }
    }
    cout << res;
}

과제가 끝나기전에 새로운게 들어오면 그거 먼저 해결을 해야한다. 처음에 if 안의 조건을 밖에서 처리했지만 -1이 생기는 문제가 발생했다. 원인은 끝난과제에대한 처리를 안해주었기 때문에 끝없이 -1 이 되어서 그런거였다.
while안의 if안의 if 에서 다했을때 결과값 합쳐준뒤 내보냄으로써 해결!

728x90
반응형

'자라는 개발자 > 문제풀이' 카테고리의 다른 글

백준 c++ 7568 덩치  (0) 2022.01.29
백준 c++ 2292 벌집  (0) 2022.01.29
백준 c++ 3986 좋은 단어  (0) 2022.01.26
백준 c++ 1487 물건 팔기  (0) 2022.01.25
백준 c++ 1120 문자열  (0) 2022.01.24