DEV Community

Brian Hyuk Lee
Brian Hyuk Lee

Posted on

백준 10773 제로

1. What I learned

    a. 입출력 속도 증가

        'ios_base::sync_with_stdio(false)'를 통해 C와 C++의 입출력 동기화를 막고, 'cin.tie(NULL)'을 통해 stream buffer가 자동으로 비워지는 것을 막아서 입출력의 속도를 높인다.

    b. accumulate()

        배열 원소들의 합을 구하기 위해서 사용할 수 있는 함수이다. 이 함수는 'numberic' 헤더 파일 안에 존재하며 매개변수로 (배열의 시작, 배열의 끝,초기값)를 전달해야 한다.

2. Code

#include <iostream>
#include <numeric>

using namespace std;

int main(void) {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int stack[100000] = {0};
    int num_of_line, temp;
    int top = 0, sum = 0;

    cin >> num_of_line;
    for (int i=0 ; i<num_of_line ; i++) {
         cin >> temp;
        if (temp==0 && top>0) {
            stack[top--] = 0;
        }
        else { stack[top++] = temp; }
    }

    sum = accumulate(stack, stack+top, sum);
    cout << sum << '\n';
    return 0;
}
Enter fullscreen mode Exit fullscreen mode

3. Result

        Runtime : 4 ms, Memory usage : 2288 KB

        (Runtime can be different by a system even if it is a same code.)

Check out the my GitHub repo for more info on the code. If you have questions, you can leave a reply on this post.

Top comments (0)