728x90
반응형
소스코드
#include<iostream>
#include<vector>
using namespace std;
int N, ret;
void init();
void zero();
int main(int argc, char** argv)
{
int test_case;
int T;
//freopen("input.txt", "r", stdin);
cin >> T;
/*
여러 개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
*/
for (test_case = 1; test_case <= T; ++test_case)
{
init();
zero();
printf("#%d %d\n", test_case, ret);
}
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
void zero() {
vector<int> money;
for (int n = 0; n < N; n++) {
int num;
scanf("%d", &num);
if (num == 0 && money.size() == 0)continue;
else if (num == 0) money.pop_back();
else money.push_back(num);
}
for (int idx = 0; idx < money.size(); idx++) {
ret += money[idx];
}
}
void init() {
N = ret = 0;
scanf("%d", &N);
}
설계
- 원래 스택으로 해도되고 여기서 포인트는 진짜 쉽다
- 0이 나오면 최근 넣었던값 지우면되는것
- 여기서는 좀더 편하게 vector 로진행해서 0이 아니면 백터에 넣고 0이나오면 제일 뒤에꺼를 지웠고
- N번이 끝나게 되면 vector에 있는 값의 합을 결과로 산출함
실수
- 실수 없음
문제 링크
원본
728x90
반응형
'알고리즘 모음집 > New 알고리즘' 카테고리의 다른 글
22.02.08_퀵소트 (0) | 2022.02.09 |
---|---|
2021.12.07_2819격자판의숫자이어붙이기 (0) | 2021.12.07 |
2021.11.11_7728-다양성측정 (0) | 2021.11.11 |
2021.11.10_7829-보물왕태혁 (0) | 2021.11.10 |
2021.11.09_7701-염라대왕의이름정렬 (0) | 2021.11.09 |
댓글