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;
}
3. Result
Runtime : 4 ms, Memory usage : 2288 KB
(Runtime can be different by a system even if it is a same code.)
Top comments (0)